打扰一下如此通用的问题标题,但不确定如何正确地调用我的问题。
查看Collections.singleton
来电的默认结果类型:
Set<Number> numberSingleton =
Collections.singleton((Number) null);
Set<Collection> rawCollectionSingleton =
Collections.singleton((Collection) null);
Set<Collection<String>> stringCollectionSingleton =
Collections.singleton((Collection<String>) null);
Set<? extends Collection<?>> anyCollectionSingleton =
Collections.singleton((Collection<?>) null);
我无法解释的是最后一行。为什么使用? extends Collection<?>
而不是简单Collection<?>
?
这是对此的正确解决方法吗?
Set<Collection<?>> anyCollectionSingleton =
Collections.<Collection<?>>singleton((Collection<?>) null);
为什么我开始这一切:
我遇到了不编译行的问题:
java.util.Optional.ofNullable((Collection<?>) a).orElse((Collection<?>) b);
这似乎解决了这个问题,但价格是多少?
java.util.Optional.<Collection<?>>ofNullable((Collection<?>) a).orElse((Collection<?>) b);
答案 0 :(得分:0)
不,这是一个完全不同的概念。
与
一起使用的意思Set<? extends Collection<?>> anyCollectionSingleton =
Collections.singleton((Collection<?>) null);
是你有一个扩展泛型类集合的泛型类。
所以,这是关于继承。