在Java中如何创建与"this"类相同类型的新类?Java的

rap*_*ura -1 java class instance

我有一个简单的场景.我想在下面创建一个新类的实例.

class A implements Fancy {
    void my() {
        Fancy b = // new X(); where X could be A or B
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你有一个B实现Fancy.

dac*_*cwe 8

abstract class AbstractFancy使用create方法创建:

abstract class AbstractFancy implements Fancy {
    abstract Fancy create();

    void my() {
        Fancy b = create();
        //....
    }
}
Run Code Online (Sandbox Code Playgroud)

在每个类中实现该create方法:

class A extends AbstractFancy {
    Fancy create() {
        return new A();
    }
}
class B extends AbstractFancy {
    Fancy create() {
        return new B();
    }
}
Run Code Online (Sandbox Code Playgroud)