我是 Streams 的新手,在查看一些方法时,我看到了这个返回类型:<T> Stream<T>我不明白“ <T> Stream<T>”和“ Stream<T>”之间的区别。多余的有<T>什么作用?谢谢你的帮助。我试着谷歌一下。
2 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
当我们在 Java 中处理泛型时,我们应该知道我们可以像public interface Stream<T>
这样定义泛型类或接口,因此任何即时方法都将使用 T 类型,Stream<T> filter(
但是如果您在同一个类/接口中定义静态方法,则应定义泛型返回类型public static<T> Stream<T> empty()
或如果你想定义一个具有新泛型返回类型的实例方法,<R> Stream<R> map(
因为你可以在非泛型类中有一个泛型方法。我希望它有帮助。干杯
青春有我
TA贡献1784条经验 获得超8个赞
它不仅特定于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);
添加回答
举报
0/150
提交
取消