为什么泛型类型只适用于对象?

发布于 2024-10-09 10:48:21 字数 304 浏览 2 评论 0原文

我的意思是

interface A <T> {
}

class AImpl implements A < Integer > { // why not A< int >
}

我已经阅读了这篇文章并用谷歌搜索了它但我仍然不知道为什么它只适用于对象而不适用于原始数据类型(int,void)?

What I mean is

interface A <T> {
}

class AImpl implements A < Integer > { // why not A< int >
}

I have read this article and googled it but still I have no idea why it is only for Object and not for primitive data types(int, void)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

樱娆 2024-10-16 10:48:21

这不仅仅是通配符——Java 泛型根本不支持原始类型作为类型参数。

有关 Java 泛型的一般信息,请参阅 Java 泛型常见问题解答,以及 这个问题尤其如此

It's not just wildcards - Java generics simply don't support primitive types as type arguments at all.

See the Java Generics FAQ for more information about Java Generics in general, and this question in particular.

酷遇一生 2024-10-16 10:48:21

泛型不适用于 int、float、boolean 等,因为基本类型不具有基于对象的类型所具有的所有关联元数据和结构。在 Java 中,原始类型就是原始类型。所有相关的元数据都支持泛型、反射、子类化等。

Generics don't work for int, float, boolean, etc. because primitive types do not have all of the associated metadata and structures that Object based types have. In Java primitive types are just that, primitive. All of that associated metadata enables things like generics, reflection, subclassing, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文