有时候,我需要测试哪一个类已经宣布了一些变量(S),有另一种方式如何测试,如果具体类包含一些变量名
try {
testLocalVariable = (String) (this.getClass().getDeclaredField("testVariable").get(this));
} catch (NoSuchFieldException ex) {
} catch (SecurityException ex) {
} catch (IllegalArgumentException ex) {
} catch (IllegalAccessException ex) {
}
如果我理解正确的话,您使用此代码在超测试一个子类有testVariable
场。
你为什么不只需添加这样的方法?
/**
* Returns true if the object declares a testVariable field, false otherwise. Subclasses should
* override this method
*/
protected boolean hasTestVariableField() {
return false;
}
似乎更OO对我来说,不破坏封装。
这么说,我还没有真正理解为什么你需要这个摆在首位。
类有田,而不是局部变量。
您可以使用getDeclaredField()
但是这不会找到超类声明的字段。
你并不需要查找的字段的值,如果你没有得到一个异常的领域是存在的。