我已经问过这个问题,这是一个困惑的描述,所以:
我有课
private Class MyClass<T extends SomeClass> //where SomeClass is an abstract class
{
SomeClass T=new SomeClass(); //Something like that but which works
}
我想以某种方式实例化 T 或调用它的方法,可能使用强制转换,因为 SomeClass 是抽象的,并且上述内容无效
最佳答案
首先,正确的类定义是
public class MyClass<T extends SomeClass> { }
或
private class MyClass<T extends SomeClass> { }
如果这个类是内部类。 T 将被替换为某种类型。这意味着
SomeClass T =new SomeClass(); // this T is not the T from class definition
在上面的行中,您正在尝试创建抽象类的实例 - 这是不可能的!
创建扩展SomeClass
的类并实现抽象方法(如果有),然后您可以创建一个实例SomeClass sc = new MyNewClassWhichExtendsSomeClass()
关于java - 在类中传递通用对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21554309/