Get/Set from C# to Java

本文关键字:to Java from Set Get | 更新日期: 2023-09-27 18:23:59

我正在做一个将c#项目翻译成Java的项目。我在C#中有以下获取/设置块

 public Unit[] Units
{
    get
    {
        Unit[] units_aux = new Unit[this.list_units.Count];
        this.list_units.CopyTo(units_aux);
        return units_aux;
    }
    set
    {
        if (value == null) return;
        Unit[] units_aux = (Unit[])value;
        this.list_units.Clear();
        foreach (Unit u in units_aux)
            this.lista_units.Add(u);
    }
}

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

感谢您的帮助

Get/Set from C# to Java

您基本上必须将其转换为一对方法:

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

Java没有语言级别的属性——以上基本上只是一个(非常常见的)约定。

顺便说一句,我应该注意到,这个C#代码真的不是很好:

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