Ser*_*pia 23 c# java history language-design automatic-properties
C#具有自动属性,可以大大简化您的代码:
public string Name { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
Run Code Online (Sandbox Code Playgroud)
Java有你写这么多代码:
private String name;
private String middleName;
private String LastName;
public String Name(){
return this.name;
}
etc..
Run Code Online (Sandbox Code Playgroud)
有没有特殊原因Java没有实现这样的东西?
Jes*_*per 18
将新功能添加到现有编程语言并不是那么容易,特别是如果您关心向后兼容性.Sun一直非常谨慎地为Java添加新功能,因为他们希望绝对确保任何新的语言功能都不会破坏多年来编写的数百万个Java程序.
所以,这不仅仅是将这个添加到语言中的问题; 你必须仔细思考并尝试一下,以发现你想要添加的任何新功能是否存在任何微妙的向后兼容性问题.
有人建议在Java中以某种形式添加对属性的支持,但对于Java 7(下一个版本即将发布)来说,这似乎不是正在考虑的功能.
您可能希望查看Project Lombok,它是Java的一种扩展,使用注释,可以编写更简洁的代码(例如,它可以自动生成字段的getter和setter).