【发布时间】:2015-01-30 03:46:49
【问题描述】:
如何判断一个类的成员是静态的还是字段的? 我尝试使用 .getModifiers() 方法,但没有返回所需的结果。
- bc 会员:
- 成员标识符
- 包含此成员的类的标识符
- 布尔值:如果成员是静态的,则为 true,否则为 false
- 布尔值:如果成员是字段则为真;否则为假
- 成员(返回)类型的限定名称
- 数组限定符:' ' 表示返回类型不是数组,'[ ]' 是一维数组,'[ ][ ]' 是二维数组,依此类推。
- 成员签名:对于一个字段,它是该字段的名称。对于方法,它是方法的名称,后跟其参数列表。
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()').
【问题讨论】:
-
您有一个方法、一个字段或一个类。没有通用的 Member 超类型。
-
那么它返回了什么结果呢?你期待什么?
-
对不起,我说的成员是字段和方法(构造函数也是方法吗?
-
我输入了这个: Modifier.isStatic(cons.getModifiers()) 其中 cons 是从 .getDeclaredConstructors() 返回的类的声明构造函数,它返回 false,当正确的输出应该是一个针对我正在测试的特定案例。
-
构造函数从什么时候开始是静态的?
标签: java reflection