所以,直到最近,我一直故意让自己成为一个Java,而我的第一次真实曝光带来了一个小小的震撼: Java没有C#风格的属性!
好吧,我可以接受。然而,我也可以发誓,我在一个代码库中见过Java中的属性getter/setter代码,但我记不清在哪里了。这是如何实现的?有没有相应的语言扩展?这跟NetBeans有什么关系吗?
发布于 2013-08-29 03:47:01
我很惊讶竟然没有人提到project lombok
是,目前java中没有属性。还有其他一些缺失的功能。
但幸运的是,我们有project lombok正在努力改善这种情况。它也变得越来越受欢迎。
因此,如果您使用的是lombok:
@Getter @Setter int awesomeInteger = 5;这段代码还将生成getAwesomeInteger和setAwesomeInteger。所以它非常类似于C# auto-implemented properties。
你可以获得更多关于lombok getters和setters here的信息。
你一定也应该看看other features。我最喜欢的是:
Lombok与IDE集成得很好,所以它将显示生成的方法,比如它们是否存在(建议、类内容、转到声明和重构)。
lombok的唯一问题是其他程序员可能不知道它。您可以随时delombok代码,但这与其说是一种解决方案,不如说是一种变通方法。
发布于 2008-09-16 10:20:41
"Java属性支持“是为Java7提出的,但并没有进入语言中。
如果有兴趣,请访问http://tech.puredanger.com/java7#property获取更多链接和信息。
发布于 2008-09-16 08:59:58
bean约定是这样编写代码的:
private int foo;
public int getFoo() {
    return foo;
}
public void setFoo(int newFoo) {
    foo = newFoo;
}在JVM虚拟机上的一些其他语言中,例如Groovy,您可以获得类似于C#的可重写属性,例如,
int foo它可以通过一个简单的.foo访问,并利用默认的getFoo和setFoo实现,您可以根据需要覆盖这些实现。
https://stackoverflow.com/questions/70471
复制相似问题