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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對于.class的問題.

對于.class的問題.

JKWong 2016-04-23 15:51:07
這個課程講的Class類實例對象的方法時,第一種就是Class<?>cs=Foo.class,其實這個.class是一個靜態變量嗎?因為他可以直接用類名調取?還有對于一些采用單例設計模式,我們怎樣運用反射取得某個類實例對象呢?
查看完整描述

1 回答

已采納
?
HansonQ

TA貢獻223條經驗 獲得超56個贊

public?class?A{
????private?static?A?a?=?new?A();
????private?A(){};//私有化構造函數
????public?A?getSingleton(){
????????return?a;
????}
}
//上面這個就是簡單的單例

我們知道反射可以反射出一個類的任意構造方法。
對應公共的構造方法我們可以直接利用但是對于私有的構造函數,我們需要取消代碼校驗(也就是暴力訪問)
Class<A>?a??=?A.class;//靜態變量(沒深入想過,一般是不會使用這個這個方法)
Class<A>?clazz?=?Class.forName("A類的權限路徑");//這種用的比較多
Constructor?cons?=?clazz.getDeclaredConstructor();//獲得私有的構造函數
cons.setAccessible(true);//暴力訪問
Object?object?=?cons.newInstance();//實例化對象


查看完整回答
1 反對 回復 2016-04-26
  • JKWong
    JKWong
    其實暴力訪問是不是為了可以直接訪問它的被封裝的構造方法?
  • HansonQ
    HansonQ
    對于私有的都可以使用暴力訪問
  • JKWong
    JKWong
    我有一個不用暴力訪問的方法,不過要結合單例模式的設計方法,加上利用反射調用方法也可以,不過謝謝你提出暴力訪問,我試試
  • 1 回答
  • 0 關注
  • 1537 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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