Java Generics使用类Object来存储它们存储的数据类型,是真还是假?请解释

时间:2016-10-26 02:35:28

标签: java generics

我实际上不明白这个问题。我认为Generics可以替代包括原语和引用在内的任何类型的数据。 java泛型如何与Object类型相关?

2 个答案:

答案 0 :(得分:0)

  

Java Generics使用类Object来存储它们存储的数据类型,是真还是假?

答案是错误的。

Java泛型可以使用类Object作为类型,但它们也可以使用更具体的类型。这取决于泛型类的声明方式。

  

我认为Generics可以被任何类型的数据替代,包括原语和参考。

这是不正确的。您不能将原始类型用作Java中的泛型类型参数。

  

java泛型如何与Object类型相关?

这个问题太广泛了。

答案 1 :(得分:0)

Java泛型不允许使用基本类型作为通用参数。至少在当前版本中,这可能会在Java 9中使用值类型进行更改。

无论如何,答案是错误的,尽管在很多情况下都是如此。如果你写:

class Foo<T> {
...

这意味着Java将在代码引用Object的任何位置内部使用T。但是:

class Foot<T extends InputStream> {
...

在上面的示例中,基本对象为InputStream,因此Java将在代码引用InputStream的任何位置使用T

即使使用反射,您也可以实际找到此信息。通过反射,总会有基本类型。如果您不使用extends作为通用,则默认类型为Object