Czy da się wyświetlić wartości klasy bez toString()

0

Czy się da bez nadpisywania toString()?, w debug mode te wartości się wyświetlają .... ale to debugMode . A tak bez debug mode? żeby wyświetlić je na ekranie, np. w System.out.println

3

Możesz użyć releksji. Jest np. gotowa metoda w bibliotece commons lang:
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ReflectionToStringBuilder.html

 System.out.println("An object: " + ReflectionToStringBuilder.toString(anObject));
1

Czemu nie trzymać ich w obiekcie, udostępniać bo bezbożnemu i w razie wyciągać i drukować na ekranie?

0

A dlaczego nie chcesz nadpisywać metody toString()? Zawsze możesz zaimplementować sobie dowolną inną metodę np show().
Albo zrobić publiczne gettery/pola.Albo zrobić wizytatora czytającego prywatne pola obiektu. (tutaj kończą mi się złe pomysły)

0

Można też serializować do json/xml/czegokolwiek i wypluć na ekran

0
import lombok.ToString;

@ToString
public class Dog {
}

Można użyć annotation ToString
https://projectlombok.org/features/ToString

0

bo czasami nie ma możliwości użycia toString() np jeśli jest przetwarzane przez bibliotekę

1

Raczej strzelam, że robisz coś naokoło.
Napisz jaki konkretnie napotkałes problem. W jakiej bibliotece i czego nie mogłeś zrobić.

toString() nie jest piękne, ale akurat relatywnie mało problemów robi.

0

Możesz pobawić się z wzorcem odwiedzającego :


class Animal implements Visitable{
     private String name;
     private Long numberOfLegs;    

     public void accept(Visitor visitor){
         visitor.put("Name: " + name).put("Number of llegs" + numberOfLegs);
     }
}

class Visitor{

   public Visitor put(String value){
      System.out.println(value);
      return this;
   }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1