加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从C#获取/设置为Java

发布时间:2020-12-15 23:44:22 所属栏目:百科 来源:网络整理
导读:我正在开发一个将c#项目翻译成 Java的项目.我在C#中有以下Get / Set块 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[]
我正在开发一个将c#项目翻译成 Java的项目.我在C#中有以下Get / Set块

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会忽略一个空值>通过克隆数组,如果设置属性然后修改数组内容,它就没有普遍预期的行为(至少,我的期望).无论如何,将数组作为属性类型通常是一个坏主意;如果你可以让它成为一个只读集合,那将更好,让生活更简单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读