Java:Class<&燃气轮机;对阶级

Java:Class<&燃气轮机;对阶级,java,generics,Java,Generics,如果我们只讨论Class,就像在java.lang.Class中一样,那么 Map<Class<?>, Class<?>> Map> 及 Map ? 对于其他类型名称,如列表(这根本不是这个问题的主题),通配符会产生不同:不能以类型安全的方式将某些内容放入列表。由于编写Map会给出编译警告,但我仍然可以对其执行Map.put(Integer.class,String.class),我很想知道如果使用class或class是否真的重要 是否有一个真正的点来

如果我们只讨论
Class
,就像在
java.lang.Class
中一样,那么

Map<Class<?>, Class<?>>
Map>

Map
?

对于其他类型名称,如
列表
(这根本不是这个问题的主题),通配符会产生不同:不能以类型安全的方式将某些内容放入
列表
。由于编写Map会给出编译警告,但我仍然可以对其执行
Map.put(Integer.class,String.class)
,我很想知道如果使用
class
class
是否真的重要

是否有一个真正的点来遍历具有
Map
的代码,并将其替换为
Map
在最一般的类案例中,似乎没有“编译与不编译”这样的事情

事实并非如此<代码>类别
类别
遵循与
列表
列表
或任何其他通用类型相同的限制

例如,这两个类的编译与您的
示例一样好

List<?> integerList = new ArrayList<Integer>();
List<?> stringList = new ArrayList<String>();
Map<List, List> map = new HashMap<>();
map.put(integerList, stringList);
List integerList=new ArrayList();
List stringList=新建ArrayList();
Map Map=newhashmap();
map.put(整数列表、字符串列表);

Map>Map=newhashmap();
map.put(整数列表、字符串列表);
在最一般的类案例中,似乎没有“编译与不编译”这样的事情

事实并非如此<代码>类别和
类别
遵循与
列表
列表
或任何其他通用类型相同的限制

例如,这两个类的编译与您的
示例一样好

List<?> integerList = new ArrayList<Integer>();
List<?> stringList = new ArrayList<String>();
Map<List, List> map = new HashMap<>();
map.put(integerList, stringList);
List integerList=new ArrayList();
List stringList=新建ArrayList();
Map Map=newhashmap();
map.put(整数列表、字符串列表);

Map>Map=newhashmap();
map.put(整数列表、字符串列表);

另请参见另一个例子,它没有将
进行比较。您在这里使用的是
列表
类型。我问的是
直接用于代码中的情况,而不是其他类型。我只是说明了使用
编译或不编译的任何代码,都会使用
列表
列表
给出确切的编译类型,为了指出泛型类型
Class
没有任何其他泛型类型的特殊行为这一事实,我编辑了我的问题。这并没有将
Class
Class
进行比较。您在这里使用的是
列表
类型。我问的是
直接用于代码中的情况,而不是其他类型。我只是说明了使用
编译或不编译的任何代码,都会使用
列表
列表
给出确切的编译类型,为了指出泛型类型
Class
没有任何其他泛型类型的特殊行为,我编辑了我的问题。
Map<List<?>, List<?>> map = new HashMap<>();
map.put(integerList, stringList);