如何创建泛型类型?

Eri*_*k Z 5 java generics

我已经定义了这样一个类:

public class MyClass<T implements MyInterface> {
    public T getMy() {
        return new T();
    }
}
Run Code Online (Sandbox Code Playgroud)

这不会编译.我不允许创建通用类型T.

我怎么解决这个问题?这有什么好的模式吗?我可以通过使用抽象类而不是接口来解决这个问题吗?我必须使用反射吗?

alj*_*ipa 1

您可以通过传递实际的类类型(例如,传递给构造函数)Class<T>newInstance()在默认构造函数适合您的情况下调用它来实现此目的。如果您需要另一个构造函数,您将需要使用反射 API,例如通过getDeclaredConstructors()这个类类型对象。