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.Count
和a.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本地类及其字段具有明确定义的类型,但我认为它们可能具有一些重叠的用例。