以下代码的合法用途是什么?
Object o =new Object();
根据我的理解,这个对象没有用,也没有真正的数据(除了它的哈希码)。为什么会这样用?是否可以接受的做法。如果我能够这样做,我可以显式扩展对象类。
答案 0 :(得分:8)
根据我的理解,这个对象没有用,也没有真正的数据(除了它的哈希码)
该对象带有其身份及其monitor。这就是为什么这个赋值用于创建与对象本身分开的对象监视器。
为什么要使用它?这是可以接受的做法吗?
我见过的唯一用途就是将一个对象用作其他对象的监视器。
如果我能够这样做,我可以显式扩展对象类吗?
绝对。您可以在匿名类中扩展对象,如下所示:
Object obj = new Object() {
@Override
public String toString() {
return "Hello, world!";
}
};