【发布时间】:2012-10-12 10:05:47
【问题描述】:
我有class 和Test 一样。我将class 作为参数传递。
下面的代码有什么区别:
Map maps = new HashMap();
maps.put("ARG_ID",Test.class);
和
Map maps = new HashMap();
maps.put("ARG_ID",this);
【问题讨论】:
我有class 和Test 一样。我将class 作为参数传递。
下面的代码有什么区别:
Map maps = new HashMap();
maps.put("ARG_ID",Test.class);
和
Map maps = new HashMap();
maps.put("ARG_ID",this);
【问题讨论】:
嗯,第一个表单传递了对Class 实例的引用。第二种形式传递 this 引用 - 这是一个类的实例...它们是两个完全不同的对象。
如果您使用泛型来描述您的键/值类型应该是什么,它会让您尝试做的事情更加清晰,并且编译器会阻止您尝试添加错误类型的值。
【讨论】:
Test.class 是代表Test 的Class 对象,用于反射和泛型。 this,当在类中引用时,是您正在处理的类的当前实例。
【讨论】: