java中利用Class.forName()去获得字节码文件,同时实例化对象,然后利用该对象的方法

java中利用Class.forName()去获得字节码文件,同时实例化对象,然后利用该对象的方法

首先创建一个类,Dog

package ClassLoader;

public class Dog {
	int age;
	String name;
	public Dog(int age,String name){
		this.age=age;
		this.name=name;
	}
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}



接下来测试类来获取上边类的字节码文件:
package ClassLoader;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class FetchClass {
	public static void main(String[] args) {
		try {
			Class clazz = Class.forName("ClassLoader.Dog");//获得dog类的字节码文件
			Constructor constructor = clazz.getConstructor(int.class, String.class);//获得dog类中的带参数的构造器
			Dog dog = (Dog) constructor.newInstance(2, "ahuang");//给实例对象赋值
			System.out.println("狗的年龄是:" + dog.getAge() + "    狗的名字叫:" + dog.getName());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
控制台输出如下:


猜你喜欢

转载自blog.csdn.net/handsome2013/article/details/80576683