我正在将一些代码从 C# 转换为 Java。我以前从未使用过 C#,但到目前为止它非常简单。
我在 C# 文件中有一行如下所示:
coverage.createMethod = delegate (Gridpoint gp){
//Some method stuff in here, with a return objecct
}
这到底想做什么?它看起来有点像内联类,但我不知道如何将 htis 转换为 java
编辑:有关具体问题的更多信息
在一个名为 STKDriver.java 的文件中,我有以下内容
CoverageDefinitionOnCentralBody coverage = new CoverageDefinitionOnCentralBody(...);
.
.
.
DClass value = new DClass(STKDriver.class, "invoke", CoverageGrid.class);
coverage.setGridPointCreationMethod(value);
在扩展 CreateCoverageGridPointForAccess 的填充 DClass.java 中,我有以下内容:
public DClass(Class class1, String string, Class<CoverageGridPoint> class2{}
.
.
.
public IServiceProvider invoke(CoverageGridPoint gridPoint){
return something; //of the classtype Platform
}
这样做正确吗?类定义链接如下:
请注意,CreateCoverageGridPointForAccess 类是抽象类,并且扩展了该 Delegate 类。
我创建的这个实现看起来正确吗?如果需要的话我可以写更多的代码
最佳答案
这是 C# 中的匿名方法。从技术上讲,它与以下内容相同:
coverage.createMethod = new Func<Gridpoint, object>(SampleMethod);
public object SampleMethod(Gridpoint gp)
{
return thingy; // Pseudo for return value
}
这只是您可以用来减少编码的快捷方式。
关于C# 委托(delegate)到 Java 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2851503/