日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java内部编译器错误,可能的Java编译器错误!程序不能与某些编译器一起编译

發(fā)布時間:2024/8/1 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java内部编译器错误,可能的Java编译器错误!程序不能与某些编译器一起编译 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先,一點背景(如果不感興趣,可以跳過一點).我很生氣,很困惑!這應(yīng)該是一個非常簡單的用例,事實上我的代碼已經(jīng)用

Eclipse JDT編譯器編譯得很好,所以直到現(xiàn)在我一直在配置Maven以確保這樣做.

盡管它不能用Oracle JDK和OpenJDK編譯,但是我一直在困擾我,因為我認為它可能實際上是我的代碼的問題,所以我再次研究它.

我想也許這個bug是在JDT編譯器中允許它編譯的,而不是Oracle JDK和OpenJDK因為不允許它,我也用它來測試這兩個.有問題的原始代碼要復(fù)雜得多,所以我很難看到問題出在哪里,事實上,我很驚訝地發(fā)現(xiàn)在不編譯的情況下可以減少這個問題的程度.

Eclipse JDT編譯器或Oracle JDK和OpenJDK都有一個非常重要的(imho)錯誤.

TL; DR

這是相關(guān)代碼的相當(dāng)小的表示. (Anything的類型綁定可以被任何接口替換,編譯器行為不會改變):

public class Bug & Anything> {

}

interface Property extends PropertyConst {

@Override

public S get();

}

interface PropertyConst {

public C get();

}

interface Anything {

}

總而言之,我認為這應(yīng)該編譯得很好,但Oracle JDK 7& 8和OpenJDK 7不同意.它使用Eclipse Juno為我編譯.

當(dāng)使用這些編譯器中的任何一個編譯時,上面的代碼給出類似于以下錯誤的東西,但是對于JDT編譯器工作得很好:

Bug.java:3: error: types PropertyConst> and Property,?> are incompatible; both define get(), but with unrelated return types

public class Bug & Anything> {

^

1 error

這毫無意義.返回類型顯然是相關(guān)的,因為引用的兩個方法之一必然會覆蓋另一個.我非常有信心這應(yīng)該有效,事實上,最后1%缺失的唯一原因是,基本的使用仿制藥已經(jīng)沒有被發(fā)現(xiàn),但我發(fā)現(xiàn)沒有相關(guān)的錯誤報告它. (不可否認,我并不是很努力,因為http://bugs.sun.com/只是最糟糕的.你甚至可以通過bug報告是否仍然打開來過濾關(guān)鍵字搜索結(jié)果嗎?呃.)

對我來說最令人困惑的部分是,當(dāng)你刪除X上Anything的類型綁定時,它編譯得很好,即使額外的接口與錯誤無關(guān).

任何人都可以放下心來嗎?任何人都知道存在的錯誤報告,或者以前有過相關(guān)經(jīng)驗,可以告訴我問題是什么?如果我沒有得到任何確鑿的答案,我會提交一些錯誤報告.

編輯:

有幾個人指出我有一個前向參考錯誤< S extends C,C>.不知道為什么我沒有得到這個錯誤,它甚至在Eclipse中用JDT編譯…

無論如何,它仍然無法使用OpenJDK 7或Oracle JDK 7/8為我編譯,因此我修改了問題以解決該問題.

編輯2:

快速檢查確認這種前向引用現(xiàn)在在Java 7中是合法的.應(yīng)該如此!

編輯3:

我已經(jīng)在http://bugs.sun.com/上發(fā)布了錯誤報告.如果/當(dāng)他們被接受,我會在這里發(fā)布鏈接.

總結(jié)

以上是生活随笔為你收集整理的java内部编译器错误,可能的Java编译器错误!程序不能与某些编译器一起编译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。