java - 在类中传递通用对象类型

标签 java generics abstract-class

我已经问过这个问题,这是一个困惑的描述,所以:

我有课

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/

相关文章:

java - ArrayList 和 IndexOutOfBounds 异常

用于提交文件的 Java Proxy Servlet

java - 在列表中添加通用对象

Java 抽象类和覆盖变量

PHP fatal error : Can't inherit abstract function

c# - 为什么抽象类可以有构造函数?

java - 如果使用 jsonObject android 登录成功,则打开新 Activity

java - 反转三位数 int;如果输出中有前导零,则应将其省略

Java 泛型 : actual class as a generic parameter

java - 使用 Java 泛型的 Maven 编译错误