Zastanawiasz się, czy to jest możliwe. Co chciałbym zrobić, to sprawdzić i ewentualnie zmodyfikować jeden z argumentów, zanim zostanie zapisany jako wartość.Scala: czy można zastąpić domyślny konstruktor klasy case?
Alternatywnie można użyć przeciążenia i ustawić domyślny konstruktor jako prywatny. W takim przypadku chciałbym również uczynić prywatny domyślny konstruktor fabryczny w obiekcie towarzyszącym, w jaki sposób mógłbym to zrobić?
Wielkie dzięki.
Adam
edit: dobrze zorientowali się, że zarabianie prywatny konstruktor domyślny sprawia również domyãlnego konstruktora prywatny, więc mam rozwiązanie, nadal jestem zainteresowany, aby wiedzieć, czy konstruktor domyślny jest przeciążać chociaż
Dlaczego chcesz to zrobić? Klasa case ma być używana do definiowania algebraicznych typów danych, więc dodany konstruktor, który zmienia argumenty wywołującego, jest kłamstwem. Jeśli chodzi o sprawdzanie poprawności argumentów, można to zrobić w głównym konstruktorze za pomocą 'assert' lub' require'. –
@ adam77 Aby zmienić początkowe zdanie jako pytanie "Czy mogę sprawdzić i ewentualnie zmodyfikować [parametr klasy sprawy]?" Odpowiedź brzmi tak. Właśnie wysłałem szczegóły dotyczące pokrewnego pytania znajdującego się tutaj: http://stackoverflow.com/a/25538287/501113 – chaotic3quilibrium