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的新手,所以这可能是一个基本问题,但我还没有找到任何关于如何做到这一点不会产生错误的信息。
感谢您的帮助
您基本上必须将其转换为一对方法:
public Unit[] getUnits() {
// Method body
}
public void setUnits(Unit[] value) {
// Method body
}
Java没有语言级别的属性——以上基本上只是一个(非常常见的)约定。
顺便说一句,我应该注意到,这个C#代码真的不是很好:
- 有更简单的方法可以将数组转换为列表,反之亦然
- 当我期望setter抛出异常时,它会忽略一个null值
- 通过克隆数组,如果您设置属性然后修改数组内容,它就不会有通常预期的行为(至少是我的预期)。无论如何,将数组作为属性类型通常是个坏主意;如果你能把它变成只读集合,那会更好,也会让的生活变得更简单