2009-11-08 25 views
18

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?

+0

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. –

Odpowiedz

26

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.

+0

C# jest językiem "podobnym do Java" –

+9

@Tom: Tak, w pewnym sensie. Nie jestem pewien, czy to jest istotne ... to na pewno nie nieważne, co napisałem. –

+0

@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

12

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.

Powiązane problemy