package com.mg.common.log;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Test {
public static void main(String[]args) throws ClassNotFoundException{
Class<?> clazz = Class.forName("com.mg.common.log.JDBCAppender");
System.out.println(clazz.getName());
//所在包
System.out.println("package "+clazz.getPackage().getName());
//导入的包
//方法
Method [] method = clazz.getDeclaredMethods();
int i=0;
for(Method m:method){
Class<?>[] clazzs = m.getParameterTypes();
System.out.print(m.getName()+"(");
for(Class<?>c:clazzs){
System.out.print(c.getName()+" param"+i+",");
}
System.out.println(")");
i++;
}
//构造函数
Constructor<?>[] constructors = clazz.getDeclaredConstructors();
i = 0;
for(Constructor c:constructors){
Class<?>[] clazzs = c.getParameterTypes();
System.out.print(c.getName()+"(");
for(Class<?>con:clazzs){
System.out.print(con.getName()+" param"+i+",");
}
System.out.println(")");
i++;
}
//返回字段
Field [] field = clazz.getDeclaredFields();
for(Field f:field){
int mo = f.getModifiers();
System.out.print(Modifier.toString(mo)+" ");
System.out.print(f.getType().getName()+" ");
System.out.println(f.getName());
}
//调用(实列)方法
//1,获取类:Class.forName();
//2,确认方法:class.getMethod('methodName',参数类型1,参数类型2,参数类型n);
//3,调用方法:method.invoke(class.newInstance(),'参数1','参数2','...');
//调用get,
//1,获取类:Class.forName();
//2,实列对象:Object obj = class.newInstance();
//3,调用:setter(obj,参数1,类型1);
//通过反射操作属性
//1,obj class.newInstance();
//2,确认属性:Field field = demo.getDeclaredField("sex");
//3,设置属性可修改:field.setAccessible(true);
//4,设置属性值:field.set(obj, "男");
//5,获取值:field.get();
//通过反射找类包
//String pr = pname.replace(".", "/");
//String pp = AuthUtil.class.getClassLoader().getResource(pr).getPath();//物理路径的类包
//File file = new File(pp);
//String[] fs = file.list(new FilenameFilter() {//找到匹配的类并返回 FilenameFilter文件过滤器
// @Override
// public boolean accept(File dir, String name) {
// if (name.endsWith(".class")) {
// return true;
// }
// return false;
// }
//});
}
}
浙公网安备 33010602011771号