ioc解析java反摄机制
2012-06-13 09:38
537 查看
package com.ioc;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
/**
* java反射
*
*/
public class Car {
private Integer no;
private String name;
private String color;
public Car() {
}
public Car(Integer no, String name, String color) {
this.no = no;
this.name = name;
this.color = color;
}
public Integer getNo() {
return no;
}
public void setNo(Integer no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public static void main(String[] args) throws Exception {
// 获取类装载器
ClassLoader loader = Thread.currentThread().getContextClassLoader();
// 通过类装载器获取对象
Class clazz = loader.loadClass("com.ioc.Car");
// 获取类的默认构造器对象
Constructor cons = clazz.getDeclaredConstructor();// 无参构造函数
// 实例化对象
Car car = (Car) cons.newInstance();
// 有参构造函数
// Constructor cons = clazz.getDeclaredConstructor(Integer.class,
// String.class, String.class);
// Car car = (Car) cons.newInstance(1,"a","b");
// 通过反射方法设置属性
Method setNo = clazz.getMethod("setNo", Integer.class);
setNo.invoke(car, 1);
Method setColor = clazz.getMethod("setColor", String.class);
setColor.invoke(car, "黑色");
Method setName = clazz.getMethod("setName", String.class);
setName.invoke(car, "别克");
System.out.println(car.getNo() + "|" + car.getColor() + "|"
+ car.getName());
}
}
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
/**
* java反射
*
*/
public class Car {
private Integer no;
private String name;
private String color;
public Car() {
}
public Car(Integer no, String name, String color) {
this.no = no;
this.name = name;
this.color = color;
}
public Integer getNo() {
return no;
}
public void setNo(Integer no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public static void main(String[] args) throws Exception {
// 获取类装载器
ClassLoader loader = Thread.currentThread().getContextClassLoader();
// 通过类装载器获取对象
Class clazz = loader.loadClass("com.ioc.Car");
// 获取类的默认构造器对象
Constructor cons = clazz.getDeclaredConstructor();// 无参构造函数
// 实例化对象
Car car = (Car) cons.newInstance();
// 有参构造函数
// Constructor cons = clazz.getDeclaredConstructor(Integer.class,
// String.class, String.class);
// Car car = (Car) cons.newInstance(1,"a","b");
// 通过反射方法设置属性
Method setNo = clazz.getMethod("setNo", Integer.class);
setNo.invoke(car, 1);
Method setColor = clazz.getMethod("setColor", String.class);
setColor.invoke(car, "黑色");
Method setName = clazz.getMethod("setName", String.class);
setName.invoke(car, "别克");
System.out.println(car.getNo() + "|" + car.getColor() + "|"
+ car.getName());
}
}
相关文章推荐
- 深度解析java接口回调机制
- 解析Java的多线程机制
- 类加载与 Java主类加载机制解析
- Java 类加载器Classloader机制解析
- java常用类解析七:java异常机制、异常栈、异常处理方式、异常链、异常丢失
- 全面解析Java的垃圾回收机制
- 利用Java的反射与代理机制实现IOC
- Java高级-解析Java中的多线程机制
- Java回调机制解析
- 全面解析Java的垃圾回收机制
- 【Java】ClassLoader源码全面解析java类加载机制
- Java回调机制解析
- Java回调机制解析
- java spring Ioc(反射)机制
- Java注解机制解析
- JAVA基础 (三)反射 深入解析反射机制
- Java Classloader机制解析
- Java回调机制解析
- Java回调机制解析
- Java Classloader机制解析