Pour faciliter l'introspection de débogage dans les classes, j'aimerais créer une méthode toString générique dans la classe de base pour les objets en question. Comme ce n'est pas un code de performance critique, j'aimerais utiliser Reflection pour imprimer les paires nom/valeur de champ ("x = 1, y = 2", etc.).Comment créer une méthode toString() correcte dans Scala en utilisant la réflexion?
Y at-il un moyen facile de faire cela? Pour être clair, la méthode toString() de la classe de base devrait refléter de manière réfléchie les vals publics dans toutes les classes qui en héritent, ainsi que la méthode toString() dans la classe de base. tous les traits qui sont mélangés dans
Cela ne devrait-il pas être un trait? 'trait ToString [A]'? – VonC
C'est peut-être la façon la plus propre de le faire, je n'ai pas encore réfléchi à la façon dont cela affecte ma hiérarchie d'objets. J'ai des problèmes d'accès aux propriétés que je ne peux pas expliquer actuellement. –
Les réponses ici, en particulier en utilisant Apache ReflectionToStringBuilder, ne sont pas une mauvaise idée: http://stackoverflow.com/questions/603013/dumping-a-java-objects-properties – ripper234