У java есть что-то похожее на свойства C #?

Свойства C # (я имею в виду методы get и set) – очень полезная функция. у java есть что-то похожее на свойства C #. Я имею в виду, как мы можем реализовать что-то вроде следующего кода C # в java:

public string Name { get { return name; } set { name = value; } } 

заранее спасибо

Нет, Java не имеет эквивалентности. Он имеет только методы доступа и мутатора, причудливые имена для методов getter и setter. Например:

 public class User { private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } } 

Вы могли бы взглянуть на Project Lombok, поскольку он пытается избавиться от написания кода Java-кота. Это позволяет вам использовать annotations @Getter и @Setter, которые будут предоставлять методы getBlah () и setBlah ():

 public class GetterSetterExample { @Getter @Setter private int age = 10; } 

Или вы можете просто использовать @Data, и он будет автоматически реализовывать ваши методы hashCode (), equals (), toString () и getter, а также настройки для нефинализированных полей:

 @Data public class DataExample { private String name; } 

Тем не менее, проблемы, которые я нашел с проектом, это то, что все это немного вуду, которое может быть отключено, и что вам нужно установить плагин eclipse (или когда-либо), чтобы получить автоматическую компиляцию.

Свойства не только удобны в плане написания getters и setters инкапсулированных в единицу, но также они обеспечивают хороший синтаксис в точке вызова.

 Window.Title = "New"; //which looks natural 

в то время как с getters и setters это обычно

 Window.setTitle("New"); 

Было предложение добавить C # -подобную поддержку свойств (и событий) к Java, но похоже, что это отклоняется для следующей версии Java (Java 7).

Видеть:

  • Почему в Java 7 не будет встроенных свойств?
  • Свойства Java без Getters и Setters

Вы можете просто объявить приватную переменную и написать методы вручную. Однако, если вы используете Eclipse, вы можете щелкнуть по переменной, выбрать «Источник» и «Создать геттеры и сеттеры». Это примерно так же удобно, как и свойства C #.

  • Можно ли установить частную собственность через reflection?
  • Список свойств classа в swift
  • В чем разница между иварами и свойствами в Objective-C
  • Имущество и сеттеры
  • Доступ к файлам свойств программно с помощью Spring?
  • Установить свойство объекта с помощью отражения
  • Почему у вас есть пустое свойство get set вместо использования переменной public?
  • Создание родового имущества
  • appSettings vs applicationSettings. appSettings устарел?
  • Что такое {get; задавать; } в C #?
  • C # настройка / получение свойств classа по имени строки
  • Давайте будем гением компьютера.