有没有一种简单的方法来定义Java中的“get and set”,如C#?

时间:2014-04-21 03:46:09

标签: java properties

在C#中,我可以使用下面的简单方法

public class Dummy 
{
   public string Name { get; set; }
}

但如果我使用java做同样的事情,我必须这样做

public class Dummy {
    private String _name;

    public void setName(String value) {
        this._name = value;
    }

    public String getName() {
        return this._name;
    }
}

所以,你可以知道至少7行代码与c#中的1行代码具有相同的效果; 所以,我想知道java中有一个简单的方法可以用来简单设置字段或获取字段吗?

thx for advanced

3 个答案:

答案 0 :(得分:3)

Java不支持该特定的C#习惯用法,但是许多IDE包含生成访问器和变换器的方法;例如,在eclipse中你可以选择

  

来源,生成Getters和Setter

SHIFT - ALT - s r

答案 1 :(得分:1)

该语言没有任何内置功能,但您始终可以使用Project Lombok的注释集在编译时为您生成getter和setter。

特别是@Data非常强大 - 它会生成你的getter,setter和toString()方法。

以下是一个例子:

import lombok.Data;

@Data
public class Node<T extends Comparable<T>> {

    private final T data;
    private Node<T> left = null;
    private Node<T> right = null;

    public Node(final T theData) {
        data = theData;
    }

    public void add(final Node<T> theNode) {
        if(data.compareTo(theNode.getData()) <= 0) {
            // goes to the left
            left = theNode;
        } else {
            // goes to the right
            right = theNode;
        }
    }
}

您可能必须为IDE安装一个插件,以识别它是在编译时生成的,但这会处理所有setter和getter样板代码。

答案 2 :(得分:0)

这是特定于语言的,你不能再期待了。
有一种更简单的方法可以通过点击来创建get / set:
在eclipse编辑器上,右键单击打开菜单\ Source \ Generate Getters and Setters
- &gt;选择你想要获取和设置的属性。