Имеет ли Java автоматические свойства?

в c# вы можете настроить следующие свойства:

public int CustomerId {get;set;}

который устанавливает автоматическое свойство CustomerId, но мне было интересно, есть ли что-то подобное в Java?

5 ответов


нет, Java не имеет ничего подобного на данный момент. Черт возьми, свойства в Java-это в основном просто соглашения методов get/set, а не подлинное понимание компилятором, как они есть в C#. Инструменты и библиотеки распознают шаблон get/set, но язык не знает о них. (Возможно, что в будущей версии Java будет более "формальная" поддержка.)

некоторые Java-подобные языки, такие как в Groovy имейте автоматическое поколение свойства, однако.


нет, на Java такого нет.

в Eclipse, однако, вы можете автоматически реализовать методы геттера/сеттера для полей с источником > генерировать геттеры/сеттеры.


не на самом языке Java. Однако существует по крайней мере одна библиотека, которая обеспечивает это. Смотри:http://projectlombok.org/ (или более конкретно:http://projectlombok.org/features/GetterSetter.html)


вы также можете сделать это легко, используя аннотации из Проект Lombok


  • свойства JavaFX также могут представлять интерес:

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

    IntegerProperty num = new SimpleIntegerProperty(666);
    System.out.println(num.getValue());
  • Также см. Этот связанный вопрос о том, как избежать кода get / set boiler plate:

"специальные атрибуты / свойства" вместо геттера / сеттера на Java, чтобы избежать кода котельной плиты