C ++模板到Java泛型[关闭]

Posted

技术标签:

【中文标题】C ++模板到Java泛型[关闭]【英文标题】:C++ templates to Java Generics [closed] 【发布时间】:2015-10-18 14:07:14 【问题描述】:

如何用 Java 编写这段代码。当 C++ 代码从数组扩展时会发生什么,以及如何使某些东西看起来像在 Java 中。我必须选择什么方式。也许我必须创建一个类并从中扩展或者其他什么?

template <typename T1, size_t N>
class tensor : public array<T1,N> ;

【问题讨论】:

有一些方法可以解决无法派生数组的问题,但无法使用 Java 泛型模拟 C++ 整数模板参数(即您的 N)。 这段代码到底扩展了什么?数组中的对象?还是数组?也许在这种情况下使用 Java 泛型不是一个好主意?我必须解决这个问题。现在是荣誉问题了) @AndrewKolenteew 例如。 std::array&lt;int, 123&gt; 是一个代表 123 个 int 的数组的类。 (问题 1:Java 泛型不能接受像 123 这样的值)。它可以像普通数组(int arr[123])一样使用,即。使用[index] 等访问元素(问题2:Java 类无法模拟[]),和/但它提供了原始数组作为类方法无法直接实现的其他内容。您的类继承自 std::array,类型和大小仍未指定,并且可能添加了更多方法。 (现在人们经常说它“不是一个好主意”,而且对于 Java 泛型来说完全不可能。我也出去了) 谢谢,现在你回答了我的问题。我会寻找另一种方法来解决这个问题。 【参考方案1】:

一点也不。与 C++ 模板相比,Java 泛型没有那么强大。

在 Java 中根本无法表达这样的模板。

【讨论】:

所以我必须找到其他方法来实现这段代码。你有什么建议? ...类似std::array 的东西也不存在。普通的 Java 数组不能是父类(内部有数组的类不能有[] 等)你无法实现这段代码。描述它的好处,然后我们可以提出其他建议。 对不起,不能是,不是“可以” 这样的问题没有简单的答案。我建议你先学习 Java 泛型和集合;然后尝试设计一些东西;然后也许把它放在 codereview.stackexchange.com 上……或者如果你有具体问题,请回到这里。但不要指望其他人会对这种开放的、通用的请求有所帮助。 because my task is to write C++ program in Java 呃……好吧。谁给你这个任务,请不要再相信他/她对编程有所了解。

以上是关于C ++模板到Java泛型[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

java泛型与通配符

深入 Java 泛型一泛型的作用与定义

泛型技巧系列:如何提供类型参数之间的转换

Java泛型

Java泛型之类型擦除

java 泛型