java类实例化的常用方式
测试辅助类:
public class Student {String name = "无名氏";//无参构造函数public Student(){}//有参构造函数public Student(String name){this.name = name;}//成员方法public void print(){System.out.println(name);}}
?
?
测试类:
public class Test {public static void main(String[] args) throws Exception { System.out.println("1、通过 new 方式,对构造函数无限制");Student stu = new Student("张三");stu.print();System.out.println("2、通过Class.newInstance(),适用于包含无参构造函数的类");Student stu2 = (Student)Class.forName("Student").newInstance();stu2.print();System.out.println("3、通过java.lang.reflect.Constructor newInstance(),对构造函数无限制");Class<?> studentClass = Class.forName("Student");Student stu3 = (Student)studentClass.getConstructor(String.class).newInstance("王五");stu3.print();}}
?
?
输出结果:
1、通过 new 方式,对构造函数无限制张三2、通过Class.newInstance(),适用于包含无参构造函数的类无名氏3、通过java.lang.reflect.Constructor newInstance(),对构造函数无限制王五
?