从C#到Java的获取/设置

从C#到Java的获取/设置,java,c#,get,set,Java,C#,Get,Set,我正在做一个将c#项目翻译成Java的项目。我在C中有下面的Get/Set块# 我想把它翻译成Java,但我没有成功地翻译成没有语法错误的语言。我对Java非常陌生,所以这可能是一个基本问题,但我还没有找到任何关于如何做到这一点而不会产生错误的信息 感谢您的帮助您基本上需要将其转换为一对方法: public Unit[] getUnits() { // Method body } public void setUnits(Unit[] value) { // Method bo

我正在做一个将c#项目翻译成Java的项目。我在C中有下面的Get/Set块#

我想把它翻译成Java,但我没有成功地翻译成没有语法错误的语言。我对Java非常陌生,所以这可能是一个基本问题,但我还没有找到任何关于如何做到这一点而不会产生错误的信息


感谢您的帮助

您基本上需要将其转换为一对方法:

public Unit[] getUnits() {
    // Method body
}

public void setUnits(Unit[] value) {
    // Method body
}
Java在语言级别上没有属性——上述基本上只是一种(非常常见的)约定

顺便说一下,我应该注意到,这段C#代码并不是非常好:

  • 有更简单的方法可以将数组转换为列表,反之亦然
  • 当我期望setter抛出异常时,它会忽略null值
  • 通过克隆数组,如果您设置属性然后修改数组内容,它就不会有通常预期的行为(至少我的预期)。无论如何,将数组作为属性类型通常是个坏主意;如果你能让它成为一个只读的收藏,那会更好,生活也会更简单

除此之外:只需编写专用单元[];您将能够自动生成getter和setter。在Eclipse:Source中-“生成getter和setter…”。我猜其他IDE也有同样的功能。@Feroc:是的,尽管它不会做与现有C#代码主体相同的事情。这是正确的。但我希望他能够相应地填充生成的方法。你的最后一个要点至少是有争议的,如果不是完全错误的话。@talex:从我的角度来看,这绝对不是错误的,因为它违反了我的期望。一般来说,拥有一个数组属性是一个令人讨厌的想法。下面是一个很好的答案,但是下次你可能应该发布你到目前为止所做的事情(Java代码)。
public Unit[] getUnits() {
    // Method body
}

public void setUnits(Unit[] value) {
    // Method body
}