Java是否具有类似于C#属性的东西?
2022-08-31 11:16:23
C#属性(我的意思是get和set方法)是一个非常有用的功能。Java是否也有类似于C#属性的东西?我的意思是我们如何在java中实现类似于以下C#代码的东西:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
C#属性(我的意思是get和set方法)是一个非常有用的功能。Java是否也有类似于C#属性的东西?我的意思是我们如何在java中实现类似于以下C#代码的东西:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
不,Java没有等价物。它只有访问器和赋值器方法,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;
}
或者你可以直接使用,它会自动实现你的、和 getter 方法,以及非最终字段上的 setter:@Data
hashCode()
equals()
toString()
@Data public class DataExample {
private String name;
}
然而,我发现这个项目的问题是,它都有点巫毒教,这可能令人反感,而且你必须安装一个Eclipse(或其他)插件才能使自动编译工作。