Nim*_*gar 77 c# java properties
C#属性(我的意思是get和set方法)是一个非常有用的功能.java也有类似于C#属性的东西.我的意思是我们如何在java中实现类似下面的C#代码:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
Run Code Online (Sandbox Code Playgroud)
先感谢您
Kev*_*nle 88
不,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; }
}
Run Code Online (Sandbox Code Playgroud)
Ben*_*ith 27
您可以查看Project Lombok,因为它试图消除编写样板文件Java代码的痛苦.它允许您使用@Getter和@Setter注释,它将提供getBlah()和setBlah()方法:
public class GetterSetterExample {
@Getter @Setter private int age = 10;
}
Run Code Online (Sandbox Code Playgroud)
或者你可以只使用@Data,它会自动实现你的hashCode(),equals(),toString()和getter方法,以及非final字段的setter:
@Data public class DataExample {
private String name;
}
Run Code Online (Sandbox Code Playgroud)
然而,我在项目中发现的问题是它有点伏都,这可能是令人反感的,并且你必须安装一个eclipse(或者什么都有)插件才能使自动编译工作.
小智 16
属性不仅在写入方面很方便,getters
而且setters
封装在一个单元中,而且它们在调用时提供了良好的语法.
Window.Title = "New"; //which looks natural
Run Code Online (Sandbox Code Playgroud)
而与getters
和setters
它通常是
Window.setTitle("New");
Run Code Online (Sandbox Code Playgroud)
有人建议向Java添加类似C#的属性(和事件)支持,但看起来这对于下一版本的Java(Java 7)是被拒绝的.
看到:
归档时间: |
|
查看次数: |
55004 次 |
最近记录: |