我是Streams的新手,当我研究一些方法时,我看到了这个return-Type:
<T> Stream<T>我不明白"<T> Stream<T>“和"Stream<T>”之间的区别。额外的<T>是做什么的?谢谢你的帮助。我试着用谷歌搜索一下。
发布于 2018-09-30 15:43:48
当我们在java中处理泛型时,我们应该知道我们可以定义一个泛型类或接口,比如public interface Stream<T>,所以任何即时方法都将使用T类型Stream<T> filter(,但是如果你在同一个类/接口中定义一个静态方法,你应该定义泛型返回类型public static<T> Stream<T> empty(),或者如果你想用一个新的泛型返回类型<R> Stream<R> map(定义一个实例方法,因为你可以在非泛型类中有一个泛型方法。我希望它能帮上忙。干杯
发布于 2018-09-30 16:41:35
它不仅仅是特定于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);https://stackoverflow.com/questions/52575623
复制相似问题