bounded-wildcard

    1熱度

    1回答

    我工作在Java OCP考試編譯,我碰到這個問題 考慮下面的代碼來: Transaction t1 = new Transaction<>(1, 2); //1 Transaction t2 = new Transaction<>(1, "2"); //2 它要求// 1必須編譯和//2不能編譯。 Class Transaction的以下哪些聲明將滿足請求? 答案是這樣的一個: public

    2熱度

    2回答

    鑑於爲什麼泛型類型Test2類不默認爲Base類,而是默認爲java.lang.Object類的代碼 abstract class Base<Thistype extends Base> { public void addOnSomethingListener(Consumer<? super Thistype> action) {} public void fo

    0熱度

    1回答

    考慮下面的類: import java.util.ArrayList; import java.util.Collection; public class Main { private static class A { } private static class B<T> { private void thenReturn(T value) {

    0熱度

    1回答

    我搜索了很多問題和其他互聯網文章,但似乎找不到滿足我的具體情況的那個,而其他解決方案都不適合我。 我這裏有這個接口: public interface PriorityQueueInterface<T extends Comparable<? super T>> 我需要做一個優先級隊列類來實現這個接口,所以我打出來是這樣的: public class ArrayPriorityQueue<T>

    0熱度

    2回答

    有一個現有的Set<Trump>傳遞給另一個函數,它將Set<? extends Politician>作爲參數。鑑於Set<? extends Politician>將包含Politician對象或僅包含Trump對象。 該Politican類不能被修改。 Trump類可供修改。 有沒有辦法乾淨地做下面的事情,或者派生類(Trump)應該如何重新設計才能做到這一點? public Set<Tru

    0熱度

    2回答

    我被這個問題困住了幾個小時。我試圖找到一個C#的等價方法。 的Java,工作原理: public class Main { public static void main(String[] args) { ArrayList<BaseList<? extends Base>> list = new ArrayList<>(); list.add(new D

    9熱度

    4回答

    甲骨文doc about Wildcards in generics說, 通配符可以在多種情況下使用:作爲類型 參數,字段,或局部變量的;有時候作爲返回類型 (雖然更好的編程習慣是更具體的)。 我已經在下面的類中嘗試了所有四個,並且每個都有編譯器錯誤。爲什麼?我究竟做錯了什麼? public class MainClass { private ? instanceFieldWithWil

    1熱度

    1回答

    文件GenericInterface.java: import java.lang.Comparable; import java.util.function.Function; public class GenericInterface { } interface Comparator<T> { int compare(T o1, T o2); static <

    0熱度

    2回答

    我不明白爲什麼我得到這些編譯錯誤:在 Add方法(捕獲#1的擴展Exec.Bird?): 1類型列表不適用的參數(Exec.Sparrow) 2: 的甲基od add(捕獲#2的?擴展Exec.Bird)在類型列表不適用於 static class Bird{} static class Sparrow extends Bird{} public static void main(Strin

    2熱度

    4回答

    爲什麼我不能一個整數添加到該類型的列表,儘管Integer擴展號碼> List<? extends Number> numList = new ArrayList<Integer>(); Integer f = 12; numList.add(f);