java 是否有类似于 C# 属性的东西?

新手上路,请多包涵

C# 属性(我指的是 get 和 set 方法)是一个非常有用的特性。 java 是否也有类似于 C# 属性的东西?我的意思是我们如何在 java 中实现类似以下 C# 代码的东西:

 public string Name
{
    get
    {
        return name;
    }

    set
    {
        name = value;
    }
}

原文由 user354583 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

不,Java 没有等价物。它只有 accessor 和 mutator 方法,getter 和 setter 方法的奇特名称。例如:

 public class User {
    private String name;

    public String getName() { return this.name; }
    public void setName(String name) { this.name = name; }
}

原文由 Kevin Le - Khnle 发布,翻译遵循 CC BY-SA 2.5 许可协议

您可以看看 Project Lombok ,因为它试图消除编写样板 Java 代码的痛苦。 It allows you to either use @Getter and @Setter annotations, which will provide getBlah() and setBlah() methods:

 public class GetterSetterExample {
  @Getter @Setter private int age = 10;
}

Or you can just use @Data and it will automatically implement your hashCode() , equals() , toString() and getter methods, along with setters on non -最终领域:

 @Data public class DataExample {
  private String name;
}

然而,我在该项目中发现的问题是它有点巫术,这可能令人反感,并且您必须安装 Eclipse(或任何其他)插件才能使自动编译工作。

原文由 Ben Smith 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题