C#属性(我指的是get和set方法)是一个非常有用的特性。java也有类似于C#的属性吗?我的意思是,我们如何在java中实现类似下面这样的C#代码:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
发布于 2010-06-03 12:01:57
不,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; }
}
发布于 2010-06-03 12:43:43
您可以看看Project Lombok,因为它试图消除编写样板Java代码的痛苦。它允许您使用@Getter
和@Setter
注释,这些注释将提供getBlah()
和setBlah()
方法:
public class GetterSetterExample {
@Getter @Setter private int age = 10;
}
或者你可以只使用@Data
,它会自动实现你的hashCode()
,equals()
,toString()
和getter方法,以及非最终字段上的setter方法:
@Data public class DataExample {
private String name;
}
然而,我发现这个项目的问题是,它有点像巫毒,可能会让人讨厌,而且你必须安装一个Eclipse (或其他什么)插件才能让自动编译工作。
发布于 2012-11-20 14:39:50
属性不仅在编写封装在单元中的getters
和setters
方面很方便,而且它们还在调用点提供了良好的语法。
Window.Title = "New"; //which looks natural
而对于getters
和setters
,通常是
Window.setTitle("New");
https://stackoverflow.com/questions/2963243
复制相似问题