C# 代码示例:
dynamic MyDynamic = new System.Dynamic.ExpandoObject();
MyDynamic.A = "A";
MyDynamic.B = "B";
MyDynamic.C = "C";
MyDynamic.Number = 12;
MyDynamic.MyMethod = new Func<int>(() =>
{
return 55;
});
Console.WriteLine(MyDynamic.MyMethod());
Java: ?
知道为什么 java 不支持这种情况吗?
最佳答案
Java 在这种情况下要严格得多。所以简短的回答是否定的,Java 没有 Expando。语法不支持这一点。
然而,Groovy 中有一个 Expando,它是一种基于 Java 的动态语言。
顺便说一句,如果您使用 Expando 进行测试,那么有很多各种 Mock 相关的解决方案:EasyMock、Mockito、JMock 等等。
关于Java 相当于 C# ExpandoObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391842/