Java Reflection: Create an implementing class

后端 未结 4 1064
一个人的身影
一个人的身影 2020-11-27 11:17
Class someInterface = Class.fromName(\"some.package.SomeInterface\");

How do I now create a new class that implements someInterface?

4条回答
  •  我在风中等你
    2020-11-27 12:09

    Actually, you have to use the class name in Class.fromName() method and cast to your interface type. See if the sample below helps.

    public class Main {
    
        public static void main(String[] args) throws Exception {
            Car ferrari = (Car) Class.forName("Mercedez").newInstance();
            System.out.println(ferrari.getName());
        }
    }
    
    interface Car {
        String getName();
    }
    
    class Mercedez implements Car {
    
        @Override
        public String getName() {
            return "Mercedez";
        }
    
    }
    
    class Ferrari implements Car {
    
        @Override
        public String getName() {
            return "Ferrari";
        }
    
    }
    

提交回复
热议问题