我class
与Test
类似。我正在传递class
作为参数。
以下代码之间有什么区别:
Map maps = new HashMap();
maps.put("ARG_ID",Test.class);
和
Map maps = new HashMap();
maps.put("ARG_ID",this);
答案 0 :(得分:5)
好吧,第一个表单传递对Class
实例的引用。第二种形式传递this
引用 - 这是类的实例 ......它们是两个完全不同的对象。
如果您使用泛型来描述您的键/值类型应该是什么,那么它会使您更加清楚您正在尝试做什么,并且编译器会阻止您尝试添加错误的值。< / p>
答案 1 :(得分:3)
Test.class
是代表Class
的{{1}}对象,用于反射和泛型。 Test
,在类中引用时,是您正在处理的类的当前实例。