我想写一个java程序来打印类的所有(公共或私有)参数及其类型。我想我必须使用反射,但是我对java反射一窍不通。
作为一个例子,我需要我的程序在下面的类上运行,并产生以下输出:
class a{
public int b;
public int c;
private String s;
}
输出:b: int
c: int
s: St
最后我的问题是如何获得一个类及其类型的参数列表
我建议您探索javadoc,从Class
类开始:
类
Class
的实例表示运行中的Java应用程序中的类和接口。
值得注意的是getDeclaredFields()
方法,它返回一个表示类声明的字段的Field
对象数组。
还要注意获取Class
对象的方法:
Class<MyClass> c = MyClass.class; //statically
MyClass mc = new MyClass();
Class<? extends MyClass> c2 = mc.getClass(); //dynamically
try {
Class c = Class.forName("a");
Field[] fs = c.getDeclaredFields();
for(Field f : fs){
System.out.println(f.getName()+": "+f.getType().getSimpleName());
}
} catch (ClassNotFoundException e) {}