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是什么?为什么在泛型类中需要静态工厂?将
类工厂
更改为类工厂
。