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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java参数传入泛型类型_Java泛型参数界定到任何一个类型的范围

發布時間:2025/3/12 java 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java参数传入泛型类型_Java泛型参数界定到任何一个类型的范围 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

是否有一種語法或解決方法來將泛型類型參數限制為任何一種類型的類型?

我知道您可以將類型限制為所有類型的所有類型(即AND邏輯):

public class MyClass & Serializable> { } // legal syntax

有OR邏輯版本,就是這樣的:

public class MyClass | Serializable> { } // illegal syntax

如果沒有支持這個的語法(我不認為有),是否有一個很好的模式的解決方法或方法?

對于某些上下文,一個用例可能是:

/** @return true if the obj is either has the same id,or if obj is the same as id */

public boolean sameAs(T obj) {

if (obj instanceof String) return this.id.equals(obj);

if (obj instanceof MyClass) return this.id.equals(((MyClass)obj).id);

return false;

}

人們似乎正在掛上上面我方法示例的準確語義.我們來試試看吧

public class MyWrapper {

// my class can wrap A or B (unrelated classes). Yes I will probably use instanceof

}

編輯:

在編譯時我不會知道我可能得到(來自外部代碼),所以我想避免每個類型都有具體的類.此外,我必須給我的課程一個調用我的class.method的外部系統,但另一個系統可以給我各種類的實例,而是一個狹義的和已知的品種.

有人對“不純”的例子發表了評論.那么一個解決方法是使用工廠方法根據傳入對象的類來選擇我的具體類,但是該工廠方法必須使用instanceof,所以你只是將instanceof移動到另一個地方 – 你仍然需要的instanceof.

還是這個想法不是一個好主意?

總結

以上是生活随笔為你收集整理的java参数传入泛型类型_Java泛型参数界定到任何一个类型的范围的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。