我用這個方法來從我String
S IN類中刪除Html
代碼:反思inhertited類
public void filterStrings() {
Field[] fields = this.getClass().getDeclaredFields();
if (fields == null) {
return;
}
for (Field f : fields) {
if (f.getType() == java.lang.String.class) {
try {
String value = (String) f.get(this);
f.set(this, methodToRemoveHtml(value));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
工作正常。由於我發現自己在我使用的很多類中都使用了這種方法,因此我想讓所有這些類都從BaseClass繼承,並僅在此處實現該方法。 但是當我這樣做,我得到一個:java.lang.IllegalAccessException: access to field not allowed
在每一次嘗試。
- 這究竟是爲什麼而
- 我該如何解決這個問題?
[setAccessible](http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/AccessibleObject.html#setAccessible(boolean)) –