对象构造函数是否合法使用?

时间:2016-06-24 00:35:30

标签: java

以下代码的合法用途是什么?

Object o =new Object();

根据我的理解,这个对象没有用,也没有真正的数据(除了它的哈希码)。为什么会这样用?是否可以接受的做法。如果我能够这样做,我可以显式扩展对象类。

1 个答案:

答案 0 :(得分:8)

  

根据我的理解,这个对象没有用,也没有真正的数据(除了它的哈希码)

该对象带有其身份及其monitor。这就是为什么这个赋值用于创建与对象本身分开的对象监视器。

  

为什么要使用它?这是可以接受的做法吗?

我见过的唯一用途就是将一个对象用作其他对象的监视器。

  

如果我能够这样做,我可以显式扩展对象类吗?

绝对。您可以在匿名类中扩展对象,如下所示:

Object obj = new Object() {
    @Override
    public String toString() {
        return "Hello, world!";
    }
};