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

解决方案 »

  1.   

    Class clazz=Class.forName("packageName.className");
    Filed f=class.getDeclaredFiled("fieldName");
    Object value=f.get(null);
      

  2.   

    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();
    }
    }

    }
      

  3.   

    阿,不好意思,从Eclipse中拷到这里来格式太乱了
      

  4.   

    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;
      

  5.   

    来晚了...
    给楼主个建议,你可以参照java.lang.reflect 包自己写一个.路线:Class -->Field -> getModifiers() -> 比较 Modifier.STATIC ->输出