如何识别声明为接口的变量的类型

时间:2012-03-30 10:36:37

标签: java

考虑将变量avar声明为

Set avar;

然后,我初始化为

avar= new HashSet();

现在,如果我出这个avar班......

System.out.println("class----->"+avar.getClass());
System.out.println("class name--->"+avar.getClass().getName());
System.out.println("class--super name--->"+avar.getClass().getSimpleName());
System.out.println("is interface--->"+avar.getClass().isInterface());

输出结果为:

class----->class java.util.HashSet
class name--->java.util.HashSet
class--super name--->HashSet
is interface--->false

是否可以将变量类型设为Set ....

我的意思是预期出局是Set ........

1 个答案:

答案 0 :(得分:4)

变量的类型为Set。变量引用的值的对象类型为HashSet

如果您只获得,则无法获取变量的类型(例如,如果方法接收此值作为参数)。

这可以追溯到你之前的问题 - 我仍然不清楚你真的理解我的答案......