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

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

public string Name
{
    get
    {
        return name;
    }

    set
    {
        name = value;
    }
}

заблаговременно

Ответ 1

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

public class User {
    private String name;

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

Ответ 2

Вы могли бы взглянуть на Project Lombok, пытаясь снять боль с написания кода кодовой пластины Java. Это позволяет вам использовать аннотации @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 (или что-либо еще) для автоматической компиляции.

Ответ 3

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

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

а при getters и setters обычно

Window.setTitle("New");

Ответ 5

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