在 JavaScript 中定义无类对象的 Java 等价物是什么?

OOP*_*dio 5 java object

我想知道是否可以像在 JavaScript 中那样在 Java 中内嵌声明一个对象。例如,在 JavaScript 中我可以说

let nameOfObject = {
    anyKey: "my value",
    someOtherValue: 5
};

console.log(nameOfObject.anyKey);// This logs "my value"
Run Code Online (Sandbox Code Playgroud)

这将创建一个无类对象并分配 nameOfObject其为各种“指针”......我如何在 Java 中做到这一点?如何创建没有类的对象?

我找到了一种可能的解决方案,看起来像

Object nameOfObject = new Object(){
    public String anyKey = "my value";
    public int someOtherValue = 5;
};

System.out.println(nameOfObject.anyKey);
Run Code Online (Sandbox Code Playgroud)

但这似乎无法编译,并说“无法解析 anyKey”,并且根据其他一些消息来源,根本无法使用...

所以我可能做错了一些事情,或者可能有不同的方法,或者它可能直接用 Java 是不可能的,我需要以不同的方式来做......


class Some{
    public String anyKey;
}

Some some = new Some() {
    this.anyKey = "my value";
};
Run Code Online (Sandbox Code Playgroud)

这段代码抛出一个错误说Syntax error, insert ";" to complete declaration,但是

class Some{
    public void anyMethod() {
        
    }
}
        
Some some = new Some() {
    public void anyMethod() {
        System.out.println("Okay");
    }
};
Run Code Online (Sandbox Code Playgroud)

工作得很好?

我不明白这里发生了什么,但我真的很感激解释和/或解决方案(如果存在的话)。

EKW*_*EKW 1

因此,java 中的所有对象都有一个与之关联的类。连生Objects都有一个类:类Object!如果没有类,您将无法创建对象,因为所有值都需要具有某种类型。但这确实不是什么大问题。如果您需要一个存储某些值的对象,您只需创建一个为这些值提供空间的类即可​​。确实在任何情况下您都无法做到这一点。

话虽这么说,如果您只是想要一种将键映射到值的方法,我建议您研究Map 数据结构