Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有泛型返回类的Java方法签名_Java_Methods_Generics_Declaration_Signature - Fatal编程技术网

具有泛型返回类的Java方法签名

具有泛型返回类的Java方法签名,java,methods,generics,declaration,signature,Java,Methods,Generics,Declaration,Signature,以下两种方法签名的区别是什么: public <T extends MyClass> Set<T> getMyList() {...} public Set<? extends MyClass> getMyList() {...} public Set getMyList(){…} 公共集在第一个方法中,T在方法体中是可访问的,而在第二个方法体中是不可访问的。这是否有用取决于方法的工作。在第一个方法中,T在方法体中是可访问的,而在第二个方法中则不是。这是否

以下两种方法签名的区别是什么:

public <T extends MyClass> Set<T> getMyList() {...}

public Set<? extends MyClass> getMyList() {...}
public Set getMyList(){…}

公共集在第一个方法中,
T
在方法体中是可访问的,而在第二个方法体中是不可访问的。这是否有用取决于方法的工作。

在第一个方法中,
T
在方法体中是可访问的,而在第二个方法中则不是。这是否有用取决于方法的工作。

对于第一种方法,您可以将其用作:

Set<MyClass> set = thing.getMyList();
Set<MyDerivedClass> set = thing.getMyList();
Set<?> set = thing.getMyList();
Set<? extends MyClass> set = thing.getMyList();
Set<? extends MyDerivedClass> set = thing.getMyList();
Set=thing.getMyList();
Set=thing.getMyList();
Set=thing.getMyList();
Set=thing.getMyList();

为第一个设置,您可以将其用作:

Set<MyClass> set = thing.getMyList();
Set<MyDerivedClass> set = thing.getMyList();
Set<?> set = thing.getMyList();
Set<? extends MyClass> set = thing.getMyList();
Set<? extends MyDerivedClass> set = thing.getMyList();
Set=thing.getMyList();
Set=thing.getMyList();
Set=thing.getMyList();
Set=thing.getMyList();

设置奇怪,您应该返回一个“列表”,作为
:)奇怪的是,您应该返回一个作为
集的“列表”
:)