簡體   English   中英

Android Studio中出現Java錯誤,但Eclipse中沒有

[英]Java error in Android Studio but not Eclipse

我猜這是一個Java新手問題。 以下代碼

myClass.addEventListener( MY_EVENT, new EventHandler() {
    @Override public void onEvent( String type, Object payload ) {
        onEventHappens( (int) payload );
    } 
});

private void onEventHappens( int value ) {
    // do something
}

在Eclipse上可以正常工作(IDE中沒有警告或錯誤,可以執行),但是Android Studio表示

(int) payload

是一個錯誤; “不可轉換的類型;無法將'java.lang.Object'轉換為'int'

誰是對的? 我知道可能會有關於“不良編碼實踐”的回應,但是我真正的問題是兩個開發環境如何/為什么要區別對待Java?

我實際上更傾向於相信Android Studio是正確的。 例如,對象可以是字符串,但不一定是數字。 因此,編譯器可能拒絕冒險。 這是邏輯。 Intelliji IDEA給我您的錯誤: http ://i.gyazo.com/158c471d9eb5ab790cd44a0fc310b831.png

myClass.addEventListener( MY_EVENT, new EventHandler() {
    @Override public void onEvent( String type, Object payload ) {
        try {
            onEventHappens( Integer.parseInt(payload) );
        } catch (NumberFormatException nfe) {
            System.out.println("Exception: " + nfe)
        }
    } 
});

private void onEventHappens( int value ) {

}

想到這一點,我真的很驚訝地看到Eclipse沒有給您錯誤,因為它確實應該給您。 您可能無意中禁用了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM