jest kilka dyskusji na temat SO o metodach ustawiających zwracających „ten” typ. I wygląda na to, że java 7 miała propozycję zwrócenia nieważnych metod. Ale ta propozycja nie mogła przejść do funkcji java 7. Nie mogłem znaleźć, czy ta propozycja została przeniesiona na Javę 8 lub w przyszłości, czy też została całkowicie odrzucona. Czy to jest
Link referencyjny - /programming/31584/design-java-and-returning-self-reference-in-setter-methods
Odpowiedzi:
Nie mogę znaleźć żadnych źródeł tego, ale uważam, że ta funkcja została całkowicie usunięta. Istnieje wiele powodów, dla których mogę myśleć:
wydajność - każda
void
metoda ma teraz dodatkowy kod powrotu i każde miejsce, w którym ta metoda jest nazywana, wymaga niejawności,pop
chyba że faktycznie używa łańcuchakompatybilność wsteczna - kompilacja z tą funkcją nagle powoduje niezgodność kodu wstecznego, ponieważ
void
zmienił się kontrakt każdej metodyOczywiście może to również zostać zaimplementowane przez kompilator ( wywołanie metody
void
? Prawdopodobnie miałeś na myślithis
, pozwól, że dodam to w sposób dorozumiany ), nie wiem jakie są wady tego podejścia.źródło
Nie sądzę, by kiedykolwiek formalnie zaproponowano to wcielenie projektu COIN w 2009 roku. Ta strona zawiera listę wszystkich propozycji i nie widzę takiej, która odpowiada.
Gdyby nie został zaproponowany, nie zostałby wzięty pod uwagę.
źródło