<classname> .class与this(表示<classname>)</classname> </classname>之间的区别

时间:2012-10-12 10:05:48

标签: java map hashmap

classTest类似。我正在传递class作为参数。

以下代码之间有什么区别:

    Map maps = new HashMap();
    maps.put("ARG_ID",Test.class);

     Map maps = new HashMap();
     maps.put("ARG_ID",this); 

2 个答案:

答案 0 :(得分:5)

好吧,第一个表单传递对Class实例的引用。第二种形式传递this引用 - 这是类的实例 ......它们是两个完全不同的对象。

如果您使用泛型来描述您的键/值类型应该是什么,那么它会使您更加清楚您正在尝试做什么,并且编译器会阻止您尝试添加错误的值。< / p>

答案 1 :(得分:3)

Test.class是代表Class的{​​{1}}对象,用于反射和泛型。 Test,在类中引用时,是您正在处理的类的当前实例。