建立類的物件,呼叫class物件的newinstance()方法
//首先通過反射獲取class物件
class c1
= class.
forname
("com.kuang.reflect.user");
//第一種方法:建立乙個物件
user user =
(user) c1.
newinstance()
;//本質是呼叫了user實體類的無參構造方法,如果沒有無參構造則會報錯
system.out.
println
(user)
;//user
//第三種:就是第一種的
user user4 =
(user) c1.
newinstance()
; method setname = c1.
getdeclaredmethod
("setname"
, string.
class);
//通過反射獲取set方法
//invoke:啟用的意思,引數(物件,"要傳的引數值")
setname.
invoke
(user4,
"歐陽菲菲");
system.out.
println
(user4)
;//user
//通過反射設定屬性
user user5 =
(user) c1.
newinstance()
; field name = c1.
getdeclaredfield
("name");
//不能直接操作私有屬性,必須關閉程式的安全監測,name.setaccessible(true);
name.
setaccessible
(true);
name.
set(user5,
"李太白");
system.out.
println
(user5)
;//user
那如果沒有無參構造,只有帶參構造怎麼通過class物件建立物件呢?
//第二種方法:通過class物件獲取構造器,然後通過構造器建立物件
constructor constructor = c1.
getdeclaredconstructor
(string.
class
,int
.class);
//獲取代餐構造方法建立物件
user user2 =
(user) constructor.
newinstance
("琴江",20
);system.out.
println
(user2)
;//user
//獲取午餐構造方法建立物件
constructor constructor2 = c1.
getdeclaredconstructor()
; user user3 =
(user) constructor2.
newinstance()
; system.out.
println
(user3)
;
另外注意事項:通過class物件獲取的method,field,constructor物件都有setaccessible()方法,
設定為true,代表關閉訪問許可權安全檢查開關,預設為false,即開啟安全檢查開關
能做什麼,想做什麼
做為乙個企業,首先要明確的是自己能做什麼。看到做什麼能賺錢就上 做一手好菜,你可以去開餐館 養雞的,就開個養雞場 會理財的,就做 做投資。不管你能做什麼,至少你要能做一件事,那是安身立命之本呀1.一把菜刀在手,吃喝不愁。做企業,可以先培養自己的優勢,然後謀求發展。把自己的優勢應用到相應的行業中,為其...
VB能做什麼?
vb的強弱爭論由來以久,會c語言的人總帶著一種不屑,就像白人對有色人種一樣,天生帶著一種優越感 那個功能你小小語言真的能實現?劉翔在奧運110欄上奪得了世界第一 中國人 亞洲人 為之振奮不已 但給人總有點那種感覺。就像vb人員會說,vb也可以開發編譯器呢,用友軟體前期還是用vb開發的呢 但也給人那種...
撞球能做什麼?
1 打撞球可以用來娛樂 2 撞球可以當玩具 3 撞球可以當 4 撞球可以做實驗 5 撞球可以造計算機 6 撞球可以造機械人 撞球可以構成宇宙!這一切都可能。因為如果你把乙個個原子看成是撞球的話,這其實無需證明,因為都是現實。宇宙的本質可能並不複雜,可能的規律也許就那麼幾條。而人類最核心的矛盾是無限的...