關於 getClass()的解讀

2021-10-01 22:30:54 字數 940 閱讀 3736

來個例子

stirng s =

newstring()

;class<

?> c = s.

getclass()

; system.out.

println

(c.getname)

其中,.getclass()方法是所有物件都擁有的,在object類中,其作用是返回乙個其執行時型別的物件,也就是它現在所屬的型別,由乙個class型別的物件接受,並通過class物件的方法getname獲取這個資訊

其中,class<?> 其實是起到接收的作用

原因是:這不是乙個通過new建立的物件,因為當用new建立物件時,如果有涉及泛型,我們要對這個物件進行泛型型別的確定和傳遞,而getclass方法已經替我們做了建立物件,並傳入泛型型別的工作,我們只需要做接收工作就可以了。而這與方法中實參傳遞給形參的過程相同。因此我們可以使用<?>進行泛型型別的接收。同樣的,也可以使用泛型萬用字元的邊界內容,例如class<? extends number> (只能接收型別為number的子類的物件),但要注意萬用字元的內容必須包含getclass返回來的型別。

string s =

newstring()

; integer i =

newinteger(10

);class<

?extends

string

> s1 = s.

getclass()

;//正確

class<

?extends

number

> s2 = i.

getclass()

;//正確

class<

?extends

number

> s3 = s.

getclass()

;//報錯

instanceof與getClass的區別

在比較乙個類是否和另乙個類屬於同乙個類例項的時候,我們通常可以採用instanceof和getclass兩種方法通過兩者是否相等來判斷,但是兩者在判斷上面是有差別的,下面從 中看看區別 public class test public static void main string args cla...

get class 返回物件的類名

get class 返回物件的類名 string get class object obj 返回物件例項 obj所屬類的名字。如果 obj不是乙個物件則返回 false class person public function set name,value public function get n...

Linux 關於許可權的解讀

超級使用者 root 可以再在linux系統下做任何事情,不受限制,就像linux中的神,擁有至高無上的權利 普通使用者 在linux下做有限的事情。超級使用者的命令提示符是 普通使用者的命令提示符是 命令 su 使用者名稱 功能 切換使用者。例如,要從root使用者切換到普通使用者user,則使用...