JAVA反射谁可以介绍一下?马上揭贴........ http://search.csdn.net/Expert/topic/2331/2331974.xml?temp=.5021173 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://search.csdn.net/Expert/topic/844/844084.xml?temp=.5763971 import java.lang.reflect.*;class Test{ private int pri = 10; protected int pro = 20; public int pub = 30; private void pri_print(){ System.out.println("private"); } protected void pro_print(){ System.out.println("protected"); } public void pub_print(){ System.out.println("public"); } }public class Demo{ public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException{ Class c = Test.class; Field[] fs = c.getDeclaredFields(); //设为可访问的 Field.setAccessible(fs, true); for(int i = 0; i < fs.length; i++){ System.out.println(fs[i].getName()); } //得到private int pri的值 System.out.println(fs[0].getInt(new Test())); Method[] ms = c.getDeclaredMethods(); Method.setAccessible(ms, true); for(int i = 0; i < ms.length; i++){ System.out.println(ms[i].getName()); } //得到定义这个方法的类名 System.out.println(ms[0].getDeclaringClass().getName()); //调用private方法 ms[0].invoke(new Test(), null); } } http://www-900.ibm.com/developerWorks/cn/java/j-dyn0603/http://edu.cn700.com/Print.asp?ArticleID=20756 例子-------------import java.lang.reflect.*;public class DumpMethods { public static void main(String args[]) { try { Class c = Class.forName(args[0]); Method m[] = c.getDeclaredMethods(); for (int i = 0; i < m.length; i++) System.out.println(m[i].toString()); } catch (Throwable e) { System.err.println(e); } }}按如下语句执行:java DumpMethods java.util.Stack它的结果输出为:public java.lang.Object java.util.Stack.push(java.lang.Object)public synchronized java.lang.Object java.util.Stack.pop()public synchronized java.lang.Object java.util.Stack.peek()public boolean java.util.Stack.empty()public synchronized int java.util.Stack.search(java.lang.Object)这样就列出了java.util.Stack 类的各方法名以及它们的限制符和返回类型。这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods 来获取这个类中定义了的方法列表。java.lang.reflect.Methods 是用来描述某个类中单个方法的一个类。---------------百度上可以搜到一大堆 http://dev.csdn.net/article/58/58798.shtm Java的多线程 时间年份 JCloseableTabbedPane为什么不能用 大家来找碴 java中如何实现远程的本地存储了?? 真心的请教大家!!Java对我来说是一个全新的世界,我现在还不知道是什么?我很想征服它 关于带有proxy的http请求头 我想自杀了,上午好好的,下午不行了,急死了! 谁能帮帮我,关于jbuider的使用! 如何在java Applet中使用File Chooser? 如何利用反射调用构造函数 如何写判断一个字符串是否符合一个四则运算式的正则表达式
private int pri = 10;
protected int pro = 20;
public int pub = 30;
private void pri_print(){
System.out.println("private");
}
protected void pro_print(){
System.out.println("protected");
}
public void pub_print(){
System.out.println("public");
}
}
public class Demo{
public static void main(String[] args)
throws IllegalAccessException,
IllegalArgumentException, InvocationTargetException{
Class c = Test.class;
Field[] fs = c.getDeclaredFields();
//设为可访问的
Field.setAccessible(fs, true);
for(int i = 0; i < fs.length; i++){
System.out.println(fs[i].getName());
}
//得到private int pri的值
System.out.println(fs[0].getInt(new Test()));
Method[] ms = c.getDeclaredMethods();
Method.setAccessible(ms, true);
for(int i = 0; i < ms.length; i++){
System.out.println(ms[i].getName());
}
//得到定义这个方法的类名
System.out.println(ms[0].getDeclaringClass().getName());
//调用private方法
ms[0].invoke(new Test(), null);
}
}
-------------import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}按如下语句执行:java DumpMethods java.util.Stack它的结果输出为:public java.lang.Object java.util.Stack.push(java.lang.Object)public synchronized java.lang.Object java.util.Stack.pop()public synchronized java.lang.Object java.util.Stack.peek()public boolean java.util.Stack.empty()public synchronized int java.util.Stack.search(java.lang.Object)这样就列出了java.util.Stack 类的各方法名以及它们的限制符和返回类型。这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods 来获取这个类中定义了的方法列表。java.lang.reflect.Methods 是用来描述某个类中单个方法的一个类。---------------
百度上可以搜到一大堆