程序如何得到类中的方法和属性,当然是public的。就好比如何实现在IDE中“xxx.”后面自动出现方法和属性的功能。呵呵,不知道我说清楚了没有,大家帮帮我啊,先谢谢了。
解决方案 »
- 关于Java的数组名
- 关于ArrayList类的IndexOf方法的实质!
- 抽象类与非抽象类的区别
- 请问 JFormattedTextField这个类能否实现double型的输入?
- java的时间函数
- 关于按钮事件的问题。
- 调用Process ps=Runtime.getRuntime().exec(cmd1,null,file)出错,急,请高手解决,谢谢了
- 怎样一次改变所有容器里面构件的字体?
- 领导要我用JAVA写一个程序。通过服务器,给600台PC安装测试程序。请版主帮忙指点一下!多谢!!!
- InputStream 抽象类的问题?
- 关于unicode的问题
- 请教一个ireport做web报表的问题 急 在线等 解决后散分!
提供类和接口,以获取关于类和对象的反射信息。
reflect是很牛X的东东。
假设你有类A
public class A {
int i;
String s;
public void say(){
}
}
要取得A的属性和方法,那么可以这么写
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class B { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Class c=Class.forName("A");
Field[] f=c.getDeclaredFields();
Method[] m=c.getMethods();
for(int i=0;i<f.length;i++){
System.out.println("name:"+f[i].getName()+" class:"+f[i].getClass().getName() );
}
for(int i=0;i<m.length;i++){
System.out.println("method name:"+m[i].getName());
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
public void methodA(){
}
}当然是new一个实例,然后调用它的方法啊。
ClassA a=new ClassA();
a.methodA;
没错!里面的Method、Field等就是对应类的方法和属性等。
从任何的一类的class属性里可以get出那些东西来。
如Method[] ms = System.class.getMethods();就得到了System类所有的方法,
然后ms[0].getName()之类的就可以得到方法相关的信息。另外,如果想实现IDE的自动提示功能,可以考虑动态编译和加载,
即对于将编辑的代码动态编译它,再用定制的ClassLoader载入它,
进而用上面的反射方法(reflect)来进一步处理……^_^
java.lang.reflect