一些零碎知识的小计:
java反射,一共两个类,完成一个简单的反射实现:
比较简单,注释什么就不写了
入口类:TestReflect.java
package com.javasd.reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class TestReflect {
public static Maker initByReflect() throws Exception{
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class<?> clazz = loader.loadClass("com.javasd.reflect.Maker");
Constructor<?> c = clazz.getDeclaredConstructor(String.class);
Maker maker = (Maker)c.newInstance(new String("zhangluping"));
Method setName = clazz.getMethod("setName", String.class);
Method setProduct = clazz.getMethod("setProduct", String.class);
setName.invoke(maker, "zhangluping");
setProduct.invoke(maker, "xingminna");
return maker;
}
public static void main(String args[]) throws Exception{
Maker maker = initByReflect();
System.out.println(maker.say());
}
}
Maker.java
package com.javasd.reflect;
public class Maker {
public Maker(){
}
public Maker(String name){
this.name=name;
}
private String name;
private String product;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public String say(){
return new String(name + " makes " + product);
}
}