Niedawno pracowałem nad ostrzeżeniami FindBugs o ujawnianiu stanu wewnętrznego, tj. Gdy zwracano odwołanie do tablicy zamiast zwracania kopii tablicy. Stworzyłem kilka szablonów, aby ułatwić konwersję tego kodu.Szablony edytora dla programowania defensywnego
Który z nich stworzyłeś, aby obsługiwać programowanie defensywne i chcesz dzielić się z tłumem SO?
Szablony że utworzone pory (przykłady):
utworzenia kopii tablicy powrotu na metodzie:
Klonowanie obiekt:
(${o}!= null?(${type})${o}.clone():null)
Chciałbym odwrócić inicjalizację "boolean res" i test równości klas. Następnie kod "else" może zostać przeniesiony do klauzuli "then". Myślę, że to ułatwia zrozumienie wtedy i mniej podatności na błędy. –
@Randy: szablon naprawiony – VonC
Ale ten szablon działa tylko wtedy, gdy klasa implementuje porównywalne, prawda? Czy wszystkie zajęcia są porównywalne? Jeśli tak, jakie są korzyści i czy warto to opłacić? – dhiller