簡體   English   中英

Java泛型:Java中的問題類型參數推斷

[英]Java Generics: Question Type parameters inference in Java

我正在學習Java中的泛型概念。

在此特定行-> class User<T extends List<U>, U> ,是否存在一個原因,當第一個參數本身定義T<U>時,java會在類參數定義中強制第二種類型的參數U我想念的捷徑。

在main內部調用代碼:

    User<List<Integer>, Integer> u = new User<>("some_user", 21, l);
    System.out.println(u.getDetails());;

類:

class User<T extends List<U>, U> {

private String name;
private int age;
private T details;

public User(String name, int age, T details) {
    super();
    this.name = name;
    this.age = age;
    this.details = details;
}

}

當您聲明類型參數T具有上限List<U> ,您尚未定義類型參數U ,因此,如果沒有聲明U則它尚未定義。

您可以按照自己的方式做-再次聲明U

class User<T extends List<U>, U> {

或者您可以先聲明(順序無關緊要):

class User<U, T extends List<U>> {

但是除非您確實需要List的特定類型,否則我將刪除該類型參數,並專注於元素的類型。

class User<U> {
    //...
    private List<U> details;

    public User(String name, int age, List<U> details) {
        //...
    }
}

(對於列表元素類型,您始終可以只使用T而不是U

暫無
暫無

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

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