Java中是否有类似于C#匿名类型的功能?

2022-09-03 12:45:32

我想知道Java中是否存在类似于C#的匿名类型的类似功能:

var a = new {Count = 5, Message = "A string."};

还是这个概念与Java范式背道而驰?

编辑:

我想在Java中使用有点类似。Hashable()


答案 1

不。没有等效项。Java 中没有无类型变量声明 (),Java 编译器可以使用自动生成的类型名称进行填充以允许和访问。vara.Counta.Message


答案 2

也许你的意思是这样的:

Object o = new Object(){
    int count = 5;
    String message = "A string.";
};

@Commenters:当然,这是一个理论上非常不方便的例子。

可能OP可以使用:Map

Map<String,Object> a = new HashMap<String,Object>();
a.put("Count", 5);
a.put("Message", "A string.");

int count = (Integer)a.get("Count"); //better use Integer instead of int to avoid NPE
String message = (String)a.get("Message");

推荐