Aby ułatwić introspekcję czasu debugowania na lekcjach, chciałbym utworzyć ogólną metodę toString w klasie bazowej dla przedmiotowych obiektów. Ponieważ nie jest to kod o krytycznym znaczeniu dla wydajności, chciałbym użyć Reflection do wydrukowania par nazwa/wartość pól ("x = 1, y = 2" itd.).Jak stworzyć przyzwoitą metodę toString() w scala za pomocą refleksji?
Czy istnieje prosty sposób na zrobienie tego? Wypróbowałem kilka potencjalnych rozwiązań i napotkałem problemy z dostępem do zabezpieczeń, itp.
Aby było jasne, metoda toString() w klasie bazowej powinna odbijać się refleksyjnie od publicznych znaków w klasach, które dziedziczą po niej, jak również wszelkie cechy, które są zmieszane w
Czy nie powinna to być cecha? 'cecha ToString [A]'? – VonC
To może być najczystszy sposób, aby to zrobić, nie zastanawiałem się jeszcze, jak to wpłynie na moją dziedziczność obiektu. Mam problemy z dostępem do usługi, których nie mogę obecnie wyjaśnić. –
Odpowiedzi tutaj, w szczególności za pomocą Apache ReflectionToStringBuilder, nie są złym pomysłem: http://stackoverflow.com/questions/603013/dumping-a-java-objects-properties – ripper234