Java有自动属性吗?

时间:2009-11-08 22:33:04

标签: java language-features

在c#中,您可以设置如下属性:

public int CustomerId {get;set;}

这设置了一个名为CustomerId的自动属性,但我想知道Java中是否有类似内容?

5 个答案:

答案 0 :(得分:26)

不,Java目前没什么相似之处。哎呀,Java中的属性大多只是get / set方法的约定,而不是编译器真正理解它们在C#中。工具和库识别get / set模式,但语言不知道它们。 (在未来的Java版本中,可能会有更多“正式”支持。)

然而,某些类似Java的语言(例如Groovy)会生成自动属性。

答案 1 :(得分:12)

不,Java中没有这样的东西。

但是,在Eclipse中,您可以为包含Source>的字段自动实现getter / setter方法。生成Getters / Setters。

答案 2 :(得分:6)

不是Java语言本身。但是,至少有一个库可以提供。请参阅:http://projectlombok.org/(或更具体的:http://projectlombok.org/features/GetterSetter.html

答案 3 :(得分:4)

您也可以使用Project Lombok

中的注释轻松完成此操作

答案 4 :(得分:1)

  • JavaFX属性也可能很有用:

http://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm

    IntegerProperty num = new SimpleIntegerProperty(666);
    System.out.println(num.getValue());
  • 另请参阅有关如何避免获取/设置锅炉板代码的相关问题:

"Special attributes/properties" instead of getter/setter in Java to avoid boiler plate code