gpt4 book ai didi

Java泛型说明

转载 作者:搜寻专家 更新时间:2023-11-01 01:36:30 24 4
gpt4 key购买 nike

虽然我了解 Java 泛型,但直到我尝试编写以下内容为止:

class A{}

class B{
A a;

<T extends A> T getA(){
return a; // does not compile
}
}

我收到一个编译错误,指出类型不兼容:需要 T,找到 A。

  1. 为什么我会收到错误消息?
  2. 我很乐意获得一篇描述此类 Java 泛型陷阱的文章的引用。

谢谢!

最佳答案

如果它编译了,它就不是类型安全的:

B b = new B();
b.a = new A();

SubclassOfA foo = b.<SubclassOfA>getA();

编译器不能保证 a 将是 T 的一个实例,而且由于类型删除,它甚至不能在执行时检查它 - 所以它不会编译。

一般来说 Java Generics FAQ几乎涵盖所有内容。

关于Java泛型说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11816653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com