tipos simple referencia metodo herencia ejercicios ejemplos constructores java class-design

simple - referencia super java



¿Cuál es la mejor clase de constructor de toString que ha usado o visto? Lo que lo hizo bien (2)

Solo uso mi IDE para generar el toString para mí. Si cambio el código, elimino el método y lo regenero.

Enfrentémoslo escribiendo mensajes agradables en una cadena es una tarea aburrida y desordenada que debe hacerse, ya que puede ser realmente útil para la inspección en un depurador o registro.

¿Qué características te gustan o deseas que estén en un ayudante así?

  • propiedades de dumping deben venir w / etiquetas.

    nombre = mP país = Australia ...

  • los valores que son algunos de los valores predeterminados deben omitirse opcionalmente.

    • No tiene sentido imprimir muchas propiedades que son 0 o nulas.
    • Si establece una etiqueta y el valor es nulo, no lo incluya tampoco.
  • el separador entre la etiqueta y el valor debe ser actualizable y debe insertarse automáticamente entre las etiquetas y los valores cuando se agregan.

  • También debe insertar automáticamente el separador de su elección.

    Si quieres comas, espacíate lo que sea entre los valores cuando incluyas una matriz, que así sea.

  • debe citar automáticamente los valores de cadena ... porque es importante saber exactamente dónde comienza y termina una cadena.

    * name = mP state = "New South Wales"

  • cuando se agrega una lista, un mapa o un conjunto, se deben respetar las reglas sobre la asignación de cadenas, el uso del separador de conjuntos, etc. Por favor, no solo descargue Collection.toString ().

Tengo algunos otros en algo que estoy mejorando, ¿pueden enumerar sus propias ideas, observaciones, etc.?

new ToStringBuilder() .setLabelValueSeparator(''='') .label("name") .value(Country.AUSTRALIA) // -> returns "Australia" without the quotes. .label("day of death") .value(null) // .label("numbers") .valueSeparator(","); .value(Arrays.asList( 1, 2, 3 ) .build();

por supuesto resultará en "nombre =" Australia "números = 1, 2, 3;


Apache ToStringBuilder tiene una implementación decente fuera de la caja:

@Override public String toString() { return ToStringBuilder.reflectionToString(this); }

De hecho, estoy buscando ahora cómo conseguir que su salida sea un poco más bonita. ReflectionStringBuilder parece ofrecer algo más de personalización. Específicamente me gusta esto:

@Override public String toString() { StandardToStringStyle style = new StandardToStringStyle(); style.setFieldSeparator(", "); style.setUseClassName(false); style.setUseIdentityHashCode(false); return new ReflectionToStringBuilder(this, style).toString(); }

La salida se ve así:

[[email protected], age=16, createdDate=<null>, favoriteColor=blue, id=2]