簡體   English   中英

使用泛型類作為類型參數

[英]Using generic class as type parameter

我想使用一個泛型類作為另一個泛型類的類型參數。

起初我的類定義是這樣的:

class Foo<T, R extends BaseDto> {}

然后我的要求發生了變化,我不得不為我的R類型使用包裝器/持有人類

我到目前為止的嘗試:(給出編譯時錯誤: Bar<R>上預期的類或接口)

class Bar<T extends BaseDto> {
    private T dto;
    public Bar(T dto) {
        this.dto= dto;
    }
    // getters and setters
}
class Foo<T, Bar<R>> {
    private T entity;
    private R dto;
    // getters and setters
}

我不能將它用作Foo<T, Object>因為這樣使用此類的客戶將不知道他們實際上需要從ObjectBar

我將如何實施這種行為?

不要更改類標題,而是將使用R的類中的所有位置都替換為Bar<R>

所以類頭保持不變:

class Foo<T, R extends CustomClass> 

但是假設您有一個R類型的字段。 這需要更改為Bar<R>

Bar<R> someField;

看起來你需要的可能是:

class Foo<T, R extends CustomClass, S extends Bar<R>>

你會用

class Foo<T extends CustomClass, R extends Bar<T>> {}

如果Bar是固定的,即,如果用戶不需要另一個擴展Bar類,那么您需要擺脫R並只在Foo使用Bar<T>

暫無
暫無

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

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