如何找出类成员是静态的还是Java中的字段
你如何找出一个班的成员是静态的还是一个领域? 我尝试使用.getModifiers()方法,但它没有返回所需的结果。
yparser.connection包的所需输出为:
bcClass(c0,'yparser.connection','Object').
/* public Constructors */
bcMember(m0,c0,true,false,'yparser.connection','','connection(String,String,String,String,String,String)').
/* public Fields */
bcMember(m1,c0,true,true,'String','','quote').
bcMember(m2,c0,true,true,'String','','comma').
bcMember(m3,c0,false,true,'String','','name1').
bcMember(m4,c0,false,true,'String','','role1').
bcMember(m5,c0,false,true,'String','','end1').
bcMember(m6,c0,false,true,'String','','name2').
bcMember(m7,c0,false,true,'String','','role2').
bcMember(m8,c0,false,true,'String','','end2').
/* public Methods */
bcMember(m9,c0,true,false,'void','','dump()').
你知道这是一个字段,因为它是一个Field
对象。
要确定它是否是静态的:
if(Modifier.isStatic(f.getModifiers()))
System.out.println("Field is static!");
要么
if((f.getModifiers() & Modifier.STATIC) != 0)
System.out.println("Field is static!");
fields[] fld= TheClass.class.getDeclaredFields();
for (Field fldd : fld) {
if (java.lang.reflect.Modifier.isStatic(fldd.getModifiers())) {
//Then the fldd is static
}
}
链接地址: http://www.djcxy.com/p/57409.html
上一篇: How to find out if a class member is static and a field in Java
下一篇: Getting Type instance of implemented interface with type parameters applied