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

歡迎訪問 生活随笔!

生活随笔

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

java

java 通配符 类_关于类:具有多个类的Java泛型通配符

發布時間:2025/3/15 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 通配符 类_关于类:具有多个类的Java泛型通配符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我想要一個類對象,但是我想要強制它所代表的任何類來擴展類A和實現接口B。

我能做到:

Class extends ClassA>

或:

Class extends InterfaceB>

但我不能兩者兼得。有辦法嗎?

實際上,你可以做你想做的。如果要提供多個接口或類加接口,則必須使通配符看起來像這樣:

請參閱sun.com上的generics教程,特別是頁面底部的綁定類型參數部分。如果您愿意的話,您實際上可以列出多個接口,為您需要的每個接口使用& InterfaceName。

這會變得任意復雜。要演示,請參見Collections#max的javadoc聲明,它(包裝在兩行中)是:

public static > T

max(Collection extends T> coll)

為什么這么復雜?正如Java泛型常見問題解答:保存二進制兼容性。

看起來這對變量聲明不起作用,但在類上放置泛型邊界時,它起作用。因此,要想做你想做的事,你可能需要跳過幾個圈。但你可以做到。您可以這樣做,在類上放置一個通用邊界,然后:

class classB { }

interface interfaceC { }

public class MyClass {

Class variable;

}

得到有你想要的限制的variable。有關更多信息和示例,請查看Java 5中泛型的第3頁。注意,在中,類名必須在前面,接口在后面。當然,你只能列出一個類。

但是為什么我要在返回對象時把它投射到t上呢?

@在我回答之前,你需要提供更多的信息。在什么情況下你需要演員?

這很有幫助。值得一提的是,類必須排在第一位,您不能說""。

也可以用逗號分隔,但只能用類分隔。

對于T,如何做同樣的事情?應該擴展一個類或者實現一個接口?

@Ragunathjawahar:你不能對此過于開放。你必須有一些邊界,其中之一就是提前知道你將在哪里有接口,在哪里有類,以及你將如何使用繼承。對于類型參數,您幾乎必須知道它是類還是接口。

@埃迪,你說得對。我知道了。它對于不同的用例是不同的。我最終用一種通用方法解決了我的問題?;愂褂贸夘愔付ㄟ吔?。其中一個泛型方法通過擴展基類和接口縮小了范圍。

T extends Object部分的用途是什么?

@中卓:在這種情況下,可能會有幾個班,為什么他們會被昏迷分開?

@njzk2:檢查我在回答中對"保持二進制兼容性"的鏈接。它解釋了為什么"T擴展對象"部分在那里。

@埃迪:謝謝,我現在明白了。

回答的第一行是"讓通配符看起來像這樣",表達式中沒有?,所以它真的是一個"通配符"?我這樣問是因為當類型參數實際上是一個通配符時,我不能讓整個"一次擴展兩件事"概念起作用。

是的,它不是一個真正的通配符,你不能用一個通配符來做OP要求的事情。你可以做什么操作,有效地,只是不使用通配符。

很有趣,但您不能(表面上)做的是,因為1)類型參數必須在"&"中位于最后,2)即使在該形式中,它也會生成"意外類型"。

不能使用"匿名"類型參數(即使用?的通配符),但可以使用"命名"類型參數。只需在方法或類級別聲明類型參數。

import java.util.List;

interface A{}

interface B{}

public class Test> {

T t;

}

。

為什么不允許使用通配符?也就是說,我不明白為什么這不應該是有效的:arraylistList;然后,如果從列表中拉出一個元素,則可以將其分配給ClassA或InterfaceB類型的變量。

用變量替換通配符是一種很好的技術!但并不總是有效。例如,Java不允許注釋值類型中的名稱類型變量,但它允許通配符。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java 通配符 类_关于类:具有多个类的Java泛型通配符的全部內容,希望文章能夠幫你解決所遇到的問題。

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