我想知道我是否可以像在javascript中那样用java在线声明一个对象。例如,在javascript中,我可以说
let nameOfObject = {
anyKey: "my value",
someOtherValue: 5
};
console.log(nameOfObject.anyKey);// This logs "my value"
这将创建一个无类对象并赋值 nameOfObject
作为它的“指针”。。。如何在java中实现这一点?如何创建没有类的对象?
我找到了一个可能的解决办法
Object nameOfObject = new Object(){
public String anyKey = "my value";
public int someOtherValue = 5;
};
System.out.println(nameOfObject.anyKey);
但这似乎没有编译,并说“任何密钥无法解决”和根据一些其他来源,将不会工作在所有。。。
所以我可能做了一些非常错误的事情,或者可能有一个不同的方法,或者可能这是直接的java不可能的,我需要用不同的方法来做。。。
class Some{
public String anyKey;
}
Some some = new Some() {
this.anyKey = "my value";
};
此代码引发一个错误 Syntax error, insert ";" to complete declaration
然而
class Some{
public void anyMethod() {
}
}
Some some = new Some() {
public void anyMethod() {
System.out.println("Okay");
}
};
效果很好?
我不明白这里发生了什么,但我真的很想得到一个解释和/或解决方案(如果有的话)。
3条答案
按热度按时间ckx4rj1h1#
你不能真的把它当作java中的“对象”。javascript对象是哈希表的独特实现。如果您想要类似的功能,可以根据您的具体需求使用java hashmap或concurrenthashmap(hashtable)。
vfhzx4xs2#
因此,java中的所有对象都有一个与之相关联的类。甚至生的
Objects
上一节课:theObject
同学们!没有类就无法创建对象,因为所有值都需要某种类型的类型。但这并不是什么大问题。如果需要存储某些值的对象,可以创建一个有空间容纳这些值的类。在任何情况下你都不能做到这一点。也就是说,如果您只是想要一种将键Map到值的方法,我建议您研究map数据结构。
vkc1a9a23#
javascript类不同于java类,javascript不是一种基于类的面向对象语言,js中的一个对象被用作保存属性的模板,但是java类中可以保存变量(属性)和函数,所以在java中初始化一个对象必须有一个用于该对象的类,您可以将其视为如何启动对象的蓝图,例如创建一个类:
要从您创建的类中初始化对象,请在main中或在代码将运行的地方调用此命令:
请注意,示例类可能位于不同的文件中,文件名必须与类名相同,这里是(example.java)
无论如何,如果您正在为javascript类寻找一个等价的hashmap或hashtable可能非常接近。