Java 如何在静态内部类中重用外部类的泛型?

Java 如何在静态内部类中重用外部类的泛型?,java,Java,我的理解是,外部类的参数化类型可以被内部类访问,这可能是使用静态内部类不可能的 下面的代码不适合我。我希望静态内部类从包装器类继承其泛型参数 interface CarFactory<V, W> { W makeCar(V); } public abstract class Car<T, U> { .... public static class Factory implements CarFactory<T, U> { @Ov

我的理解是,外部类的参数化类型可以被内部类访问,这可能是使用静态内部类不可能的

下面的代码不适合我。我希望静态内部类从包装器类继承其泛型参数

interface CarFactory<V, W> {
   W makeCar(V);
}

public abstract class Car<T, U> {

   ....

   public static class Factory implements CarFactory<T, U> {
    @Override
    public U makeCar(T model) {
      ...
    }
  }
}
接口工厂{
W造车(V);
}
公共抽象类汽车{
....
公共静态类工厂实现了CarFactory{
@凌驾
公共U型车(T型){
...
}
}
}
来自

引用泛型类C的类型参数是编译时错误

  • C的静态成员声明(§8.3.1.1、§8.4.3.2、§8.5.1),或

  • t嵌套在C中的任何类型声明的静态成员的声明,或

  • 静态初始值设定项C(§8.7),或

  • 嵌套在C中的任何类声明的静态初始值设定项


任何静态成员(包括静态类)都不能访问泛型参数……没有静态内部类;根据定义是静态的嵌套类与封闭类没有连接,并且不共享每个实例的信息,例如类型参数。您能否详细说明您试图解决的问题?例如:类型参数是什么?如果T/V是型号,那么U/W是什么?为什么在泛型类中需要静态工厂?将
类工厂
更改为
类工厂