Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在本地类内部使用泛型父类的类型参数?_Java_Eclipse_Generics_Inner Classes - Fatal编程技术网

Java 如何在本地类内部使用泛型父类的类型参数?

Java 如何在本地类内部使用泛型父类的类型参数?,java,eclipse,generics,inner-classes,Java,Eclipse,Generics,Inner Classes,为什么我不能在包含的本地类中引用泛型父类的类型参数 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, req

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

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
    }
}

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

这可能是Sun的
javac
中的一个bug,看看答案中包含了哪些可能的解决方案。

我知道在C#中也是一样的,但在C#中,你也可以使用
,省去第二个通用参数。它肯定与C#中的不同,考虑到C#甚至没有本地类……而且类中的类与Java中的类有着根本的不同。谢谢你的提示!结果证明这是javac的一个已知错误:
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;
    }
}