本文介绍了Java未绑定的通配符泛型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在
Are there any advantages of using wildcard-type generics in the Bar class over completely skipping them?
public class Foo<T> {} public interface Bar { public void addFoo(Foo<?> foo); public Foo<?> getFoo(String name); }
解决方案
There are multiple advantages.
- They won't produce compiler warnings like using the raw type would
They give more type safety. For example, consider if Foo was List instead. If you used List instead of List<?>, you could do this:
myBar.getFoo("numbers").add("some string");
even if the list was only supposed to contain Numbers. If you returned a List<?>, then you would not be able to add anything to it (except null) since the type of list is not known.
- They document something completely different than a raw type, namely that Foo is typed on some unknown but specific type.
这篇关于Java未绑定的通配符泛型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!