Java - Why can't I partially type a variable?
为什么在用现有变量键入新变量时键入"全部"或"无"?
例如,假设我有一个类型为
如果我只想与
我已经搜索了我的教科书和这个网站,但是我找不到任何能解释这一点的地方。如果我们被允许"部分打字",会出什么问题吗?
我知道我可以先强加EDCOX1,2,但是我很好奇为什么Java有一个全无的方法。
实际上,你可以:诀窍是在你的声明中使用
1 2 3 4 5 6 7 8 | List<Map<String, ArrayList<String>>> data = null; // Replace null with content Object temp1 = data; List<?> temp2 = data; List<? extends Map<?, ?>> temp3 = data; List<? extends Map<String, ?>> temp4 = data; List<? extends Map<String, ? extends ArrayList<?>>> temp5 = data; List<Map<String, ArrayList<String>>> temp6 = data; |
您可以使用Java泛型来替换不需要完整类型信息的类型。类似于此
1 2 3 | public static < K, V > List< Map< K, V > > test( List< Map< K, V > > list ) { return list; } |
这将允许您完全使用列表和映射类型,而不知道映射的键和值类型是什么,但如果没有更多的类型信息,则无法对映射中包含的类型进行操作。