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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

泛型可以在Eclipse中編譯和運(yùn)行,但不能在javac中編譯

泛型可以在Eclipse中編譯和運(yùn)行,但不能在javac中編譯

qq_笑_17 2019-11-20 09:38:58
該代碼可以在Eclipse(20090920-1017)中編譯并正常運(yùn)行import java.util.*;public class SortNull {   static <T extends Comparable<? super T>>   Comparator<T> nullComparableComparator() {      return new Comparator<T>() {         @Override public int compare(T el1, T el2) {         return            el1 == null ? -1 :            el2 == null ? +1 :            el1.compareTo(el2);         }      };   }   public static void main(String[] args) {      List<Integer> numbers = new ArrayList<Integer>(         Arrays.asList(3, 2, 1, null, null, 0)      );      Comparator<Integer> numbersComp = nullComparableComparator();      Collections.sort(numbers, numbersComp);      System.out.println(numbers);      // "[null, null, 0, 1, 2, 3]"      List<String> names = new ArrayList<String>(         Arrays.asList("Bob", null, "Alice", "Carol")      );      Comparator<String> namesComp = nullComparableComparator();      Collections.sort(names, namesComp);      System.out.println(names);      // "[null, Alice, Bob, Carol]"   }}但是它不能在上編譯javac 1.6.0_17。這是錯(cuò)誤消息:SortNull.java:17: incompatible types; no instance(s) of type variable(s) T exist so that java.util.Comparator<T> conforms to java.util.Comparator<java.lang.Integer>found   : <T>java.util.Comparator<T>required: java.util.Comparator<java.lang.Integer>     Comparator<Integer> numbersComp = nullComparableComparator();SortNull.java:25: incompatible types; no instance(s) of type variable(s) T exist so that java.util.Comparator<T> conforms to java.util.Comparator<java.lang.String>found   : <T>java.util.Comparator<T>required: java.util.Comparator<java.lang.String>     Comparator<String> namesComp = nullComparableComparator();2 errors有人可以解釋為什么差異嗎?這是錯(cuò)誤嗎?如果是這樣,誰有錯(cuò)誤?
查看完整描述

3 回答

?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是一個(gè)已確認(rèn)的錯(cuò)誤:錯(cuò)誤ID 6468354。這是相關(guān)的摘錄:


此問題是由以下事實(shí)引起的:有時(shí)javac的JLS3 15.12.2.8實(shí)現(xiàn)忽略遞歸邊界,有時(shí)卻忽略(如本例所示)。當(dāng)遞歸邊界包含通配符時(shí),在計(jì)算未推斷類型變量時(shí)將包括此類邊界。這樣可以進(jìn)行后續(xù)的子類型化test (Integer <: Comparable<? super T>,其中T要推斷出類型變量)。


將在6369605之后修復(fù)


在WinXP上也以1.6.0_13出現(xiàn)在我身上。嗯,我只是堅(jiān)持使用Eclipse :)


查看完整回答
反對(duì) 回復(fù) 2019-11-20
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以通過顯式指定泛型類來解決此問題:


Comparator<String> namesComp = Stack.<String>nullComparableComparator();


查看完整回答
反對(duì) 回復(fù) 2019-11-20
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

我遇到了類似的問題,并從jdk1.6.0_16升級(jí)到j(luò)dk1.6.0_23,它消失了,沒有任何代碼更改。


查看完整回答
反對(duì) 回復(fù) 2019-11-20
  • 3 回答
  • 0 關(guān)注
  • 555 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)