java有类似于C#属性的东西吗? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java有类似于C#属性的东西吗? [重复]相关的知识,希望对你有一定的参考价值。

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

public string Name
{
    get
    {
        return name;
    }

    set
    {
        name = value;
    }
}

先感谢您

答案

不,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; }
}
另一答案

您可以看看Project Lombok,因为它试图消除编写样板文件Java代码的痛苦。它允许您使用@Getter和@Setter注释,它将提供getBlah()和setBlah()方法:

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

或者你可以只使用@Data,它会自动实现你的hashCode(),equals(),toString()和getter方法,以及非final字段的setter:

@Data public class DataExample {
  private String name;
}

然而,我在项目中发现的问题是它有点伏都,这可能是令人反感的,并且你必须安装一个eclipse(或者什么都有)插件才能使自动编译工作。

另一答案

属性不仅在编写封装在单元中的getterssetters方面很方便,而且它们在调用时提供了良好的语法。

Window.Title =  "New"; //which looks natural

而与getterssetters通常是

Window.setTitle("New");
另一答案

有人建议向Java添加类似C#的属性(和事件)支持,但看起来这对于下一版本的Java(Java 7)是被拒绝的。

看到:

另一答案

您可以声明一个私有变量,并手动编写方法。但是,如果您使用的是Eclipse,则可以单击某个变量,选择“Source”和“Generate getters and setters”。这和C#属性一样方便。

以上是关于java有类似于C#属性的东西吗? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java中的东西(类似于)参数[重复]

Java中有类似内部类的东西吗?

想用JAVA做一个类似于WINDOWS资源管理器的界面

想要类似于 iPhone 日历列表视图的东西吗?

在Python中有类似于C ++中的split()吗?

你能推荐一些比 java.util.Properties 更高级的东西吗?