2012-07-17 57 views
0

當我編譯我下面的Java代碼,爪哇 - 解決WindowPeer警告

Window w = c instanceof Window ? (Window) c : SwingUtilities.getWindowAncestor(c); 
WindowPeer peer = (WindowPeer) w.getPeer(); 

我得到以下警告消息:

warning: WindowPeer is internal proprietary API and may be removed in a future release 

不知道如何解決這個問題呢? 我正在使用JDK 1.6,我也嘗試過1.7。

+0

也許不使用它...? – 2012-07-17 18:04:11

+4

「 對等接口僅用於移植AWT,它們不適用於應用程序開發人員,開發人員不應該實施對等方,也不應直接在對等實例上調用任何對等方法。」 – aioobe 2012-07-17 18:05:19

+1

你爲什麼使用它? 2.詢問如何在沒有WindowPeer的情況下做到這一點。 – josefx 2012-07-17 18:05:20

回答

0

這裏有兩種方法來抑制警告。 不過,不建議禁止警告,並且警告消息文本告訴您爲什麼。

方法#1(最簡單的)是運行

javac -XDignore.symbol.file ... 

這將編譯你的程序對Sun的內部rt.jar而非面向公衆的符號文件ct.sym

方式#2A是運行

javac -XDenableSunApiLintControl -Xlint:-sunapi ... 

這仍然發出 「注意」,而不是警告。

方式#2b是通過在源代碼中編寫

@SuppressWarnings("sunapi") 

相應的警告和注意事項,但是這仍然需要你如下運行javac:

javac -XDenableSunApiLintControl ... 
+0

'-XDenableSunApiLintControl -Xlint:-sunapi'不適用於Java 9 – reversiblean 2018-03-06 15:51:01