2 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
類名可以在源代碼中用作許多不同表達(dá)式的一部分。這并不意味著類名本身就是一個(gè)對(duì)象;而是意味著類名本身就是一個(gè)對(duì)象。它只是意味著名稱本身可以用作更大表達(dá)式的一部分。這些不是“屬性”或?qū)傩?;而是“屬性”。它們是其他語法結(jié)構(gòu),用于形成具有許多不同部分的表達(dá)式。
JLS 定義了如何Foo
使用“TypeName”,例如,在第 15 章中形成表達(dá)式。具體來說:
第 15.8.2 節(jié),類文字。
類型名稱{[ ]} 。
class
第 15.8.4 節(jié),限定 this,以訪問詞法封閉類。
類型名稱.
this
第 15.11 節(jié), 字段訪問表達(dá)式,將詞法封閉類作為超類進(jìn)行訪問。
類型名稱.?
super
。標(biāo)識(shí)符第 15.12 節(jié), 方法調(diào)用表達(dá)式,調(diào)用靜態(tài)方法。
類型名稱.?[類型參數(shù)]標(biāo)識(shí)符([參數(shù)列表])
類型名稱.?
super
。[類型參數(shù)]標(biāo)識(shí)符([參數(shù)列表])第 15.13 節(jié),方法引用表達(dá)式,引用稍后可能調(diào)用的封閉類的方法。
類型名稱 .?
super
:: [類型參數(shù)] 標(biāo)識(shí)符
它也可能是適用于其他表達(dá)式的“參考類型”,例如:
第 15.16 節(jié), 強(qiáng)制轉(zhuǎn)換表達(dá)式,創(chuàng)建強(qiáng)制轉(zhuǎn)換表達(dá)式。
(參考類型{?AdditionalBound?})UnaryExpressionNotPlusMinus
第 15.20.2 節(jié),類型比較運(yùn)算符
instanceof
,使用instanceof
.關(guān)系表達(dá)式?
instanceof
?引用類型
類型名稱有特定的用途,例如Foo
上面描述的。這并不意味著類型名稱通??梢杂米髌渥约旱膶?duì)象。類型名稱只能作為較大表達(dá)式的一部分,否則可能不相關(guān)。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
Foo
是一種類型。Foo.class
是一個(gè)代表類型的對(duì)象。
該instanceof
運(yùn)算符將對(duì)象作為其第一個(gè)參數(shù),將類型作為其第二個(gè)參數(shù)。Foo
不能作為第一個(gè)參數(shù),因?yàn)樗皇且粋€(gè)對(duì)象 - 它是一種類型。
至于為什么你可以這樣做Foo.class
……好吧,這就是 Java 語法的工作方式。Class
類本身的結(jié)構(gòu)在運(yùn)行時(shí)是已知的,并由該類的所有實(shí)例共享的對(duì)象表示。語法.class
是訪問該對(duì)象的一種方法。
添加回答
舉報(bào)