<t>流<t>-不了解此返回类型

时间:2018-09-30 07:24:13

标签: java generics java-stream return-value

我是Streams的新手,在查看某些方法时,我看到了以下return-Type:

<T> Stream<T>

我不了解“ <T> Stream<T>”和“ Stream<T>”之间的区别。额外的<T>有什么作用? 谢谢你的帮助。我试图用Google搜索它。

2 个答案:

答案 0 :(得分:1)

当我们使用Java处理泛型时,应该知道我们可以定义一个泛型类或接口,例如public interface Stream<T>,因此任何即时方法都将使用T类型Stream<T> filter(,但是如果您在在相同的类/接口上,您应该定义通用返回类型public static<T> Stream<T> empty(),或者如果您想使用新的通用返回类型<R> Stream<R> map(定义实例方法,因为您可以在非通用类中使用通用方法。 希望对您有所帮助。 欢呼

答案 1 :(得分:0)

不仅限于Stream

静态泛型方法需要与类的泛型声明分开的自己的泛型声明(public static <T>)。

例如,

Stream的concat方法是static

public static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b) 

不是它的filter方法。

Stream<T> filter(Predicate<? super T> predicate);