当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Java  » 编程基础
NioJason

java的反射机制

NioJason 发布于 2016年08月18日 16时, 0评/1064阅
分享到: 
收藏 +0
0
<无详细内容>
标签: <无>

代码片段(3) [全屏查看所有代码]

1. [文件] Car.java ~ 882B     下载(7)     跳至 [1] [2] [全屏预览]

package com.baobaotao.juvie;

public class Car {

	private String brand;
	private String color;
	private int maxSpeed;
	
	
	public String getBrand() {
		return brand;
	}
	public void setBrand(String brand) {
		this.brand = brand;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public int getMaxSpeed() {
		return maxSpeed;
	}
	public void setMaxSpeed(int maxSpeed) {
		this.maxSpeed = maxSpeed;
	}
	//1空的默认的构造函数
	public Car(){
		
	}
	//带参的构造函数
	private Car(String brand, String color, int maxSpeed) {
		super();
		this.brand = brand;
		this.color = color;
		this.maxSpeed = maxSpeed;
	}
	//未带参的方法
	public void introduce(){
		System.out.println("Car [brand=" + brand + "&color=" + color + "&maxSpeed=" + maxSpeed + "]");
	}
	
}

2. [文件] TestExp.java ~ 1KB     下载(3)     跳至 [1] [2] [全屏预览]

package com.baobaotao.juvie;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

import org.junit.Test;


/**
 * ClassName: TestExp 
 * @Description: 此类仅用于自己写的一些测试方法·
 * @author zhuwei
 * @date 2016-8-18 下午03:32:13
 */
public class TestExp {
	
	@Test
	public void test001() throws ReflectiveOperationException{
		//通过类加载器获取car对象
		ClassLoader loader=Thread.currentThread().getContextClassLoader();
		Class clazz= loader.loadClass("com.baobaotao.juvie.Car");
		
		//获取类的默认构造器对象并通过他实例化car
		Constructor cons= clazz.getDeclaredConstructor((Class[]) null);
		Car car=(Car) cons.newInstance();
		
		//通过反射方法设置属性
		Method setBrand=clazz.getMethod("setBrand", String.class);
		setBrand.invoke(car, "红旗");
		Method setColor=clazz.getMethod("setColor", String.class);
		setColor.invoke(car, "黑色");
		Method setMaxSpeed=clazz.getMethod("setMaxSpeed", int.class);
		setMaxSpeed.invoke(car, 200);
		car.introduce();
	
	}
	
	

}

3. [图片] QQ截图20160818161322.jpg    



开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

开源从代码分享开始 分享代码
NioJason的其它代码 全部(2)...