请问 如何通过反射得到一个类的所有静态属性得值?

zmm037 2006-01-23 09:18:03
请问 如何通过反射得到一个类的所有静态(public static)属性得值?
...全文
317 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzgyb 2006-01-23
  • 打赏
  • 举报
回复
阿,不好意思,从Eclipse中拷到这里来格式太乱了
xzgyb 2006-01-23
  • 打赏
  • 举报
回复
public static void printStaticMembers(Class aClass)
{
Field[] fields = aClass.getFields();

if (fields.length > 0)
{
System.out.println("class " + aClass.getName());

try
{
for (int i = 0; i < fields.length; i++)
{
if (Modifier.isStatic(fields[i].getModifiers()))
{
System.out.println("field: " + fields[i].getName() +
" value: " +
fields[i].get(null));
}
}
}
catch(IllegalAccessException e)
{
e.printStackTrace();
}
}

}
jFresH_MaN 2006-01-23
  • 打赏
  • 举报
回复
Class clazz=Class.forName("packageName.className");
Filed f=class.getDeclaredFiled("fieldName");
Object value=f.get(null);
yuzl32 2006-01-23
  • 打赏
  • 举报
回复
来晚了...
给楼主个建议,你可以参照java.lang.reflect 包自己写一个.

路线:Class -->Field -> getModifiers() -> 比较 Modifier.STATIC ->输出
treeroot 2006-01-23
  • 打赏
  • 举报
回复
Class c=A.class;
Field[] fs=c.getDeclaredFields();
List ret=new ArrayList();
for(int i=0;i<fs.length;i++{
Field f=fs[i];
if(Modifier.isStatic(f.getModifiers())) ret.add(f);
}
return ret;

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧