java - 静态工厂方法中的泛型? ( java )

标签 java static-methods factory-pattern

我有一个任务要求我使用工厂模式来实现一个不可变的数据结构,但问题是抽象类是泛型的,并且让静态方法引用泛型类型给我带来了问题。我的作业要求我使用静态方法,所以我开始 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/

相关文章:

Java非静态变量引用错误?

perl - 在对象实例上调用 new 有什么好处?

java - 结合工厂方法和单例设计模式

java - Spring JPA/Hibernate Native 查询中的单引号参数值 (PostgreSQL)

Java 将字符串从单个字符串中分离出来

java - 用于静态成员初始化的静态 block 与私有(private)静态方法

class - 工厂设计模式和管道设计模式有什么区别?

java - 累积递归

javascript - 我将 selenium webdriver 2.53.1 与 java 和 firefox 45.0.1 一起使用,并尝试使用隐藏类的 linktext(打开弹出窗口)登录

Kotlin - "run"用于静态 Java 方法