第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么類在 Java 中沒有定義符號,除非您訪問它們的屬性?

為什么類在 Java 中沒有定義符號,除非您訪問它們的屬性?

陪伴而非守候 2024-01-17 17:08:05
考慮最簡單的例子。我們有public class Foo {}因此我們可以說Foo.class // ==> class Foo因此,按理說Foo應該是 a java.lang.Class,因為我們顯然可以訪問它并且可以在當前上下文中操縱它。然而Foo instanceof java.lang.Class引發(fā)錯誤cannot find symbol   symbol:    variable Foo Foo instanceof java.lang.Class ^-^不過,這與 instanceof 本身無關;只是Foo單獨在 OpenJDK shell 中會產(chǎn)生相同的錯誤。Foo如果Foo當前上下文中不存在,我們如何訪問屬性?
查看完整描述

2 回答

?
莫回無

TA貢獻1865條經(jīng)驗 獲得超7個贊

類名可以在源代碼中用作許多不同表達式的一部分。這并不意味著類名本身就是一個對象;而是意味著類名本身就是一個對象。它只是意味著名稱本身可以用作更大表達式的一部分。這些不是“屬性”或屬性;而是“屬性”。它們是其他語法結構,用于形成具有許多不同部分的表達式。

JLS 定義了如何Foo使用“TypeName”,例如,在第 15 章中形成表達式。具體來說:

  • 第 15.8.2 節(jié),類文字。

    類型名稱{[ ]} 。class

  • 第 15.8.4 節(jié),限定 this,以訪問詞法封閉類。

    類型名稱.this

  • 第 15.11 節(jié), 字段訪問表達式,將詞法封閉類作為超類進行訪問。

    類型名稱.?super。標識符

  • 第 15.12 節(jié), 方法調用表達式,調用靜態(tài)方法。

    類型名稱.?[類型參數(shù)]標識符([參數(shù)列表])

    類型名稱.?super。[類型參數(shù)]標識符([參數(shù)列表])

  • 第 15.13 節(jié),方法引用表達式,引用稍后可能調用的封閉類的方法。

    類型名稱 .?super:: [類型參數(shù)] 標識符

它也可能是適用于其他表達式的“參考類型”,例如:

  • 第 15.16 節(jié), 強制轉換表達式,創(chuàng)建強制轉換表達式。

    參考類型{?AdditionalBound?})UnaryExpressionNotPlusMinus

  • 第 15.20.2 節(jié),類型比較運算符instanceof,使用instanceof.

    關系表達式?instanceof?引用類型

類型名稱有特定的用途,例如Foo上面描述的。這并不意味著類型名稱通??梢杂米髌渥约旱膶ο?。類型名稱只能作為較大表達式的一部分,否則可能不相關。


查看完整回答
反對 回復 2024-01-17
?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

Foo是一種類型。Foo.class是一個代表類型的對象。

instanceof運算符將對象作為其第一個參數(shù),將類型作為其第二個參數(shù)。Foo不能作為第一個參數(shù),因為它不是一個對象 - 它是一種類型。

至于為什么你可以這樣做Foo.class……好吧,這就是 Java 語法的工作方式。Class類本身的結構在運行時是已知的,并由該類的所有實例共享的對象表示。語法.class是訪問該對象的一種方法。


查看完整回答
反對 回復 2024-01-17
  • 2 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號