Create an instance within Abstract Class using Reflection

前端 未结 3 1898
一整个雨季
一整个雨季 2021-01-19 00:45

Is it possible to create an instance of a derived class in abstract ancestor class using reflection Lets say:

abstract class Base {

public Base createInstan         


        
3条回答
  •  日久生厌
    2021-01-19 01:42

    Proving it works is easy:

    abstract class Base {
      public Base createInstance() throws Exception {
        return getClass().newInstance();
      }
    }
    
    public class Derived extends Base {
      public static void main(String[] args) throws Exception {
        System.out.println(new Derived().createInstance().getClass());
      }
    }
    

    prints

    class test.Derived
    

    You should ask yourself twice why you need it and whether it is really a good approach for your problem. If you need cloning, consider the clone mechanism, which does basically the same thing.

提交回复
热议问题