我有一个作业,要求我使用工厂模式来实现不变的数据结构,但是问题是抽象类是泛型的,而让静态方法引用泛型类型给我带来了问题。我的作业要求我使用静态方法,因此我开始感到恐慌。任何帮助/建议吗?
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();
}
我喜欢的两种方法都给我带来了日食方面的问题。
最佳答案
我不知道您实际上想做什么,但是让我们假设问题是您只是在寻找正确的语法:
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;
}
}