w C# Można właściwości konfiguracyjne, takie jak ten:Czy Java ma właściwości automatyczne?
public int CustomerId {get;set;}
która tworzy automatyczne właściwość o nazwie CustomerId, ale zastanawiałem się, czy jest coś podobnego w Java?
w C# Można właściwości konfiguracyjne, takie jak ten:Czy Java ma właściwości automatyczne?
public int CustomerId {get;set;}
która tworzy automatyczne właściwość o nazwie CustomerId, ale zastanawiałem się, czy jest coś podobnego w Java?
Nie, Java nie ma w tej chwili nic podobnego. Heck, właściwości w Javie są w większości zwykłymi konwencjami metod get/set, a nie są naprawdę zrozumiałe dla kompilatora, ponieważ są w języku C#. Narzędzia i biblioteki rozpoznają wzorzec get/set, ale język o nich nie wie. (Możliwe, że w przyszłej wersji Java będzie więcej "formalnej" obsługi).
Niektóre języki Java, takie jak Groovy, mają jednak automatyczne generowanie właściwości.
C# jest językiem "podobnym do Java" –
@Tom: Tak, w pewnym sensie. Nie jestem pewien, czy to jest istotne ... to na pewno nie nieważne, co napisałem. –
@JonSkeet: Czy możesz wyjaśnić, co masz na myśli przez "naprawdę zrozumiałe"? Myślałem, że C# to po prostu cukier syntaktyczny dla tego samego rodzaju rzeczy, a mianowicie pole z kilkoma funkcjami do odczytu/zapisu? – Carlos
Nie, nie ma czegoś takiego w Javie.
W Eclipse można jednak automatycznie stosować metody pobierające/ustawiające dla pól za pomocą polecenia Źródło> Wygeneruj moduły pobierania/ustawiania.
Można też to zrobić z łatwością, za pomocą adnotacji z Project Lombok
nie w języku Java sama. Istnieje jednak co najmniej jedna biblioteka, która to zapewnia. Zobacz: http://projectlombok.org/ (lub dokładniej: http://projectlombok.org/features/GetterSetter.html)
Wygląda dobrze. Istnieje kilka innych adnotacji (atrybuty dla .net devs) takich jak '@ cleanup'' @ toString' 'NonNull' ... –
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
Java jest tym, co opisuję jako język "niskiego poziomu wysokiego poziomu". Jest to język wysokiego poziomu w tym, że ma zarządzanie pamięcią, jest zorientowany obiektowo itp. Ale jest niskiego poziomu w tym sensie, że prawie nic "dodatkowego" jest zaimplementowane przez kompilator. nawet najprostszy wzorzec, podobnie jak właściwości, musi zostać wykonany ręcznie przez programistę (jestem pewien, że gdzieś istnieje wyjątek). (Może to "czysty" język OOP?) To jest dobre i złe. to jeden z powodów, dla których proponuję Javę jako pierwszy język, ponieważ nauczałby podstaw OOP, nie będąc zbyt skomplikowanym. –