我有一个任务要求我使用工厂模式来实现一个不可变的数据结构,但问题是抽象类是泛型的,并且让静态方法引用泛型类型给我带来了问题。我的作业要求我使用静态方法,所以我开始 panic 了。有什么帮助/建议吗? EDIT 添加了一些示例代码,这是教授给我们的其中一种方法的规范 签名:
ExampleClass.method1 : ExampleClass, T -> ExampleClass
ExampleClass.method2 : ExampleClass -> T
public abstract class ExampleClass<T>{
//static method creates a new subclass of Example ("Push" method)
public static Class method1(T x, ExampleClass c){
return new method1(x, f);
}
//Supposed to return an object type T ("pop" method)
public static T method2(ExampleClass c){
return c.method2Dynamic();
}
我拥有的这两种方法都给我带来了 eclipse 中的问题。
最佳答案
我不知道你到底想做什么,但我们假设问题是你只是在寻找正确的语法:
public class ExampleClass<T> {
public static <T> Class<T> method1(T x, ExampleClass<T> c) {
return c.method3(x);
}
public static <T> T method2(ExampleClass<T> c) {
return c.method2Dynamic();
}
private Class<T> method3(T x) {
return null;
}
private T method2Dynamic() {
return null;
}
}
关于java - 静态工厂方法中的泛型? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3775314/