System.out.println(in);
}
publicClass[] aa1(String name, int[] password){
returnnew Class[]{String.class} ;
}
privatestatic void aa1(int num){
System.out.println(num+“静态方法”);
}
public static void main(String[] args){
System.out.println(“main”);
}
}
Demo01.java
package xgp_reflect;
public class Demo01 {
/**
*
* 反射,加载类,获得类的字节码
* @throws ClassNotFoundException
*/
publicstatic void main(String[] args) throws ClassNotFoundException {
//方法1
Classclazz = Class.forName(“/stringjava/src/xgp_reflect/Person.java”);
//方法2
Classclazz2 = new Person().getClass();
//方法3
Classclazz3 = Person.class;
}
}
Demo02.java
// package xgp_reflect;
import java.awt.List;
importjava.lang.reflect.Constructor;
importjava.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import org.junit.Test;
public class Demo02 {
/**
* 反射类的构造函数,创建类的对象
*/
@Test
//反射构造函数publicPerson()
publicvoid test1() throws Exception{
Classclazz = Class.forName(“xgp_reflect.Person”);
Constructorc = clazz.getConstructor(null);
Personp = (Person) c.newInstance(null);
System.out.println(p.name);
}
//反射构造函数publicPerson(String name)
@Test
publicvoid test2() throws Exception{
Classclazz = Class.forName(“xgp_reflect.Person”);
Constructorc = clazz.getConstructor(String.class);
Personp = (Person) c.newInstance(“xxxx”);
System.out.println(p.name);
}
//反射构造函数publicPerson(String name, int password)
@Test
publicvoid test3() throws Exception{
Classclazz = Class.forName(“xgp_reflect.Person”);
Constructorc = clazz.getConstructor(String.class, int.class);
Personp = (Person) c.newInstance(“xiaoguoping”,25);
System.out.println(p.name);
}
//反射构造函数publicPerson(List list)
@Test
publicvoid test4() throws Exception{
Classclazz = Class.forName(“xgp_reflect.Person”);
Constructorc = clazz.getDeclaredConstructor(List.class);
c.setAccessible(true);
Personp = (Person) c.newInstance(new List());
System.out.println(p.name);
}
//无参数构造函数的另一种方法
@Test
publicvoid test5() throws Exception{
Classclazz = Class.forName(“xgp_reflect.Person”);
Personp = (Person) clazz.newInstance();
System.out.println(p.name);
}
}
Demo03.java
// package xgp_reflect;
import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Method;
import org.junit.Test;
public class Demo3 {
/**
* 反射类的方法
*/
@Test
//反射类的方法–publicvoid aa1()
publicvoid test1() throws Exception{
Personp = new Person();
Classclazz = Class.forName(“xgp_reflect.Person”);
Methodmethod = clazz.getMethod(“aa1”, null);
method.invoke(p,null);
}
@Test
//反射类的方法–publicvoid aa1(String name, int password)
publicvoid test2() throws Exception{
Personp = new Person();
Classclazz = Class.forName(“xgp_reflect.Person”);
Methodmethod= clazz.getMethod(“aa1”, String.class,int.class);
method.invoke(p,“xiaoguoping”,25);
}
@Test
//反射类的方法–publicClass[] aa1(String name, int[] password)
publicvoid test3() throws Exception{
Personp = new Person();
Classclazz = Class.forName(“xgp_reflect.Person”);
Methodmethod= clazz.getMethod(“aa1”, String.class,int[].class);
Classcs[] = (Class[]) method.invoke(p, “xiaoguoping”, new int[]{1,2});
System.out.println(cs[0]);
}
@Test
//反射类的方法–publicvoid aa1(InputStream in)
publicvoid test4() throws Exception{
Personp = new Person();
Classclazz = Class.forName(“xgp_reflect.Person”);
Methodmethod= clazz.getMethod(“aa1”,InputStream.class);
method.invoke(p,newFileInputStream(“C:\unknow.log”));
}
@Test
//反射类的方法–privatestatic void aa1(int num)
publicvoid test5() throws Exception{
//Personp = new Person();静态方法可以不传对象
Classclazz = Class.forName(“xgp_reflect.Person”);
Methodmethod= clazz.getDeclaredMethod(“aa1”,int.class);
method.setAccessible(true);
method.invoke(null,23);
}
@Test
//反射类的方法–publicstatic void main(String[] args)
publicvoid test6() throws Exception{
Classclazz = Class.forName(“xgp_reflect.Person”);
Methodmethod= clazz.getMethod(“main”,String[].class);
//method.invoke(null,newString[]{“aa”,“bb”});//JDK1.4 main(string s1,string s2)拆开参数赋值
//method.invoke(null,(Object)new String[]{“aa”,“bb”});
method.invoke(null,new Object[]{new String[]{“aa”,“bb”}});
}
}
Demo04.java
// package xgp_reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.junit.Test;
public class Demo04 {
结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
String[]{“aa”,“bb”});
method.invoke(null,new Object[]{new String[]{“aa”,“bb”}});
}
}
Demo04.java
// package xgp_reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.junit.Test;
public class Demo04 {
结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。