Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回抽象方法的实例_Java - Fatal编程技术网

Java 返回抽象方法的实例

Java 返回抽象方法的实例,java,Java,我有一个带有方法的抽象类,我想返回类的子类中的“this”。当我使用该方法时,我不希望它返回作为MyClass铸造的对象,我必须将其重新铸造回它的真实状态。有没有一种很好的方法可以用泛型来实现这一点 abstract public class MyClass{ public <aSubClassOfMyClass> doSomething(){ return this; } } 抽象公共类MyClass{ 公共剂量测定法(){ 归还这个; } }

我有一个带有方法的抽象类,我想返回类的子类中的“this”。当我使用该方法时,我不希望它返回作为MyClass铸造的对象,我必须将其重新铸造回它的真实状态。有没有一种很好的方法可以用泛型来实现这一点

abstract public class MyClass{

    public <aSubClassOfMyClass> doSomething(){

        return this;
    }
}
抽象公共类MyClass{
公共剂量测定法(){
归还这个;
}
}

您可以使用以下命令使类成为泛型:

抽象公共类MyClass{
公共T doSomething(){
归还这个;
}
}

另请参见:IntelliJ告诉我T和“this”类不兼容types@David:是;您将需要强制转换(这将引入另一个关于未选中强制转换的警告)。Java的类型系统不够强大,无法正确表达这一点。
abstract public class MyClass<T extends MyClass<T>>{    
    public T doSomething(){    
        return this;
    }
}