dav*_*rld 6 java generics collections map
Map<?, ?>Java 中的含义是什么 ?
我看过网上但似乎找不到任何文章.
编辑:我在MP3 Duration Java上发现了这个
Kal*_*Kal 10
Map<?,?> 意味着在编译时,您不知道Map的键和值对象的类类型是什么.
它是一个通配符类型. http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html
? 表示您不感兴趣的占位符(通配符):
HashMap<?, ?> foo = new HashMap<Integer, String>();
Run Code Online (Sandbox Code Playgroud)
并且由于?是通配符,您可以跳过它并仍然得到相同的结果:
HashMap foo = new HashMap<Integer, String>();
Run Code Online (Sandbox Code Playgroud)
但是它们可以用来指定或子集使用泛型。在此示例中,第一个泛型必须实现Serializable接口。
// would fail because HttpServletRequest does not implement Serializable
HashMap<? extends Serializable, ?> foo = new HashMap<HttpServletRequest, String>();
Run Code Online (Sandbox Code Playgroud)
但是,最好使用具体类代替这些通配符。仅?在知道自己在做什么时才应使用:)
| 归档时间: |
|
| 查看次数: |
5080 次 |
| 最近记录: |