Myslím, že tu nezazněl jeden veledůležitý fakt. Třídní/instanční
proměnné, kam bych property zařadil (pokud nemá v době kompilace vlastní
metody), nejdou přetížit. Naopak getter/setter jsou normální metody,
kde je OOP přístup aplikován. Vím, že na tyto metody by to být
aplikováno nemělo (nemají mít žádnou další logiku), často jsou však
situace, kdy se to hodí :-) .
Někdo zmínil framework Lombok na změnu proměnné na property. Stejnou
službu udělá i Spring Roo.
Mě property v Javě nechybí. Vygenerovat je umí těměř cokoliv (každé IDE
a řada dalších frameworků). Co je důvodem k požadavku na jejich
zavedení? Opravdu jen úspora pár řádků?
Arny
On 14.7.2011 14:16, Ondra Medek wrote:
O jakém balastu to mluvíš? Gettery a settery přece umí každé IDE
vygenerovat a psát p.speed místo p.getSpeed() mi nepřijde jako zásadní
změna. Navíc mnohem důležitější než snadnost či obtížnost psaní je
snadnost či obtížnost čtení (v literatuře se uvádí, že na jedno napsání
připadá až 20 čtení toho samého kódu). A tady se hledají argumenty pro
properties těžko.
Jj, souhlasim, hlavni je citelnost kodu. To je argument pro vsechny
flame typu Java's dead, protoze ji chybi todle nebo tamto. IMHO se v
C# da napsat vice prasacky kod (a property k tomu tez prispivaji). A
to je jeden z duvodu, proc Java jeste stale aktivne zije.