一、Java中获取class对象的3种方式:
二、通过反射来生成对象1、Class.forName("java.lang.Thread")。即使用Class类的forName(String className)静态方法。className值为某个类的全限定类名。
2、Person.class。即调用某个类的class属性来获取该类对应的class对象。
3、person.getClass()。即调用某个对象的getClass()方法,该方法返回该对象所属类对应的Class对象。
1、使用Class的newInstance()方法来创建该Class对象对应类的实例。该方式要求该Class对象的对应类有默认构造器,而执行newInstance()方法时实际上是利用默认构造
器来创建该类实例。
2、先使用Class对象获取指定的Construct对象,再调用Construct对象的newInstance()方法来创建该Class对象对应类的实例。通过这种方式可以选择使用指定的构造器来
创建对象。
实例如下:
import java.lang.Class; import java.lang.reflect.Constructor; public class Offer { private int id; private String name; public Offer() {} public Offer(int id,String name) { this.id = id; this.name = name; } public void test() { System.out.println("测试而已"); } public static void main(String[] args) throws Exception { //方法一 Offer offer1 = Offer.class.newInstance(); offer1.test(); //方法2 Class offerClass = Offer.class; Constructor<Offer> constructor = offerClass.getConstructor(int.class,String.class); Offer offer2 = constructor.newInstance(123,"java攻城狮"); offer2.test(); } }