Java中的function是否类似于C#的匿名类型?

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

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

或者这个概念是否违背Java范式?

编辑:

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

也许你的意思是这样的:

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

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

可能OP可能会使用Map

 Map a = new HashMap(); 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"); 

不,没有相应的。 Java中没有无类型变量声明( var ),Java编译器可以使用自动生成的类型名称来填充,以允许访问a.Counta.Message

Java有一个称为本地类的function,它有点类似。 它们对于创建类或实现在特定方法之外不需要了解的接口非常有用。 本地类的范围受限定它的代码块的限制。

 public void doSomething() { class SomeLocalClass { public int count = 5; public String message = "A string."; } SomeLocalClass local = new SomeLocalClass(); System.out.println(local.count); System.out.println(local.message); } 

与C#中的匿名类型不同,Java本地类及其字段具有明确定义的类型,但我认为它们可能具有一些重叠的用例。