gpt4 book ai didi

java - 如何在本地类中使用通用父类的类型参数?

转载 作者:行者123 更新时间:2023-11-30 12:00:58 25 4
gpt4 key购买 nike

为什么我不能在包含的本地类中引用泛型父类的类型参数?

public class IsGeneric<T> {
public void doSomething(T arg) {
class A {
T x;
}

A foo = new A();
foo.x = arg;
T bar = foo.x; // error: found java.lang.Object, required T
}
}

根据 Eclipse,上面的代码完全没问题,但 javac 1.6.0_11 似乎认为 foo.x 是 java.lang.Object 类型。该问题的解决方法显然是使 A 本身成为泛型,例如以下代码:

public class IsGeneric<T> {
public void doSomething(T arg) {
class A<S> {
S x;
}

A<T> foo = new A<T>();
foo.x = arg;
T bar = foo.x;
}
}

但是,我想了解第一个变体有什么问题。有什么想法吗?

最佳答案

这可能是 Sun 的 javac 中的错误,参见 this question其中包括答案中可能的解决方案。

关于java - 如何在本地类中使用通用父类的类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1304945/

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