簡體   English   中英

Java中的通用方法,語法

[英]Generic method in Java, syntax

第6行發生了什么? <C extends Cat>是useMe的返回類型,對吧? 什么<? super Dog> <? super Dog>嗎?

2. class Animal { }
3. class Dog extends Animal { }
4. class Cat extends Animal { }
5. public class Mixer<A extends Animal> {
6. public <C extends Cat> Mixer<? super Dog> useMe(A a, C c) {
7. //Some code
8. } }    

<C extends Cat>指定useMe有一個通用參數C ,它必須擴展Cat

它的返回類型是Mixer<? super Dog> Mixer<? super Dog> ? 表示通配符

第一個通用參數規范<C extends Cat>使useMe成為使用參數C參數化的通用方法,參數C來自CatCat本身。

第二個通用參數規范<? super Dog> <? super Dog>指的是方法的返回類型,它是一個參數化的Mixer ,其中唯一的泛型參數是DogDog類本身的超類。

因此,第6行意味着: useMe是一個通用方法,使用從Cat (或Cat本身)派生的C參數化。 該方法采用AC類型A兩個參數,並返回類型Mixer參數化的超類型Dog (可能是Dog本身)。

<C extends Cat>不是返回類型。 Mixer<? super Dog> Mixer<? super Dog>是。 前者僅指定用於指定c的類型。

不,返回類型是Mixer<? super Dog> Mixer<? super Dog> ,方法本身是一個泛型方法,它使用泛型參數C ,可以擴展Cat任何類,並用作參數C c

暫無
暫無

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

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