亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

怎么獲取私有的方法

private?void???ceshi(int?a){
????System.out.println("0000000000");
}
????ceshi?a=new?ceshi();
Class?c=a.getClass();
????try?{
????????Method?m=c.getMethod("ceshi",int.class);
????????m.invoke(a,1);
????}catch?(Exception?e){
????????e.printStackTrace();
????}


正在回答

5 回答

package?com.herman.reflect;


import?java.lang.reflect.InvocationTargetException;
import?java.lang.reflect.Method;

public?class?ClassDemo03?{
????public?static?void?main(String[]?args)?throws?NoSuchMethodException,?InvocationTargetException,?IllegalAccessException?{

????????A?a?=?new?A();
????????Class<??extends?A>?aClass?=?a.getClass();
????????Method?self?=?aClass.getDeclaredMethod("self");

????????self.setAccessible(true);?//暴力反射??
????????self.invoke(a);
????}
}

class?A?{
????public?void?printf(String?a)?{
????????System.out.println("printf...."?+?a);
????}

????private?void?self()?{
????????System.out.println("Access?denied!");
????}

}


0 回復 有任何疑惑可以回復我~
#1

hermaniu

使用私有需要獲取私有 利用getDeclaredMethod 然后設置訪問"允許" 便可invoke調用
2022-11-11 回復 有任何疑惑可以回復我~

首先你要明白它的訪問權限,了解后,根據相應權限用get方法就行

0 回復 有任何疑惑可以回復我~

setAccessible

http://img1.sycdn.imooc.com//5d7f71e80001265814430933.jpg

http://img1.sycdn.imooc.com//5d7f71e80001871c14433811.jpg


0 回復 有任何疑惑可以回復我~

我已經通過度娘知道答案了??梢垣@取

1 回復 有任何疑惑可以回復我~

我也想問,應該是不行的吧,如果可以用反射獲得private方法太不安全了,那public和private一點區別也沒了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

怎么獲取私有的方法

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號