есть ли у java что-то похожее на свойства C#? [дубликат]
этот вопрос уже есть ответ здесь:
свойства C# (я имею в виду get и set методы) являются очень полезной функцией. есть ли у java что-то похожее на свойства C# тоже. Я имею в виду, как мы можем реализовать что-то вроде следующий код C# в java:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
спасибо заранее
5 ответов:
нет, Java не имеет эквивалентности. Он имеет только методы доступа и мутатора, причудливые имена для методов getter и setter. Например:
public class User { private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } }
вы могли бы взглянуть на Проект 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 (или что-либо еще), чтобы заставить автоматическую компиляцию работать.
свойства не только удобно с точки зрения написания
getters
иsetters
инкапсулированные в единицу, но также они обеспечивают хороший синтаксис в точке вызова.Window.Title = "New"; //which looks natural
С
getters
иsetters
обычноWindow.setTitle("New");