1
類是這樣的:一種方法是受保護的,但我通過反射得到了方法的修飾符,修飾符是公開的。 IDE的是Android工作室
public class MethodSubject {
public String getString(String str) {
return "hello";
}
protected void setStr(String str) {
}
int getID(int t) {
return 100;
}
private void setID(int id) {
}
}
然後,我使用反射來獲取方法
Class<MethodSubject> clz=MethodSubject.class;
Method[] methods=clz.getDeclaredMethods();
for(Method method:methods){
int modifier=method.getModifiers();
if ((modifier& Modifier.PUBLIC)==1){
Log.e("target,",method.toString());
}
}
然後,日誌是:
public int ...MethodSubject.getID(int)
public String ...MethodSubject.getString(java.lang.String)
public void ...MethodSubject.setStr(java.lang.String)
爲什麼修改改變了?
您確定您在查找正確的日誌?因爲我剛剛測試過你的場景,並且它的打印方法名稱不是帶有保護修飾符 –
,與我一樣,是不可或缺的 –
我非常確定我在說什麼。我在Eclipse中測試這些代碼,它工作正常。但是,如果它在AndroidStuio中工作,日誌就是我在那裏寫的。 – Lyri