23 Ekim 2018 Salı

Apache Commons ToStringBuilder Sınıfı

Giriş
Şu satırı dahil ederiz
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
Bu sınıfı ToStringStyle.SHORT_PREFIX_STYLE ile kullanmak hoşuma gidiyor.

constructor - Object + ToStringStyle
Şöyle yaparız.
ReflectionToStringBuilder builder = new ReflectionToStringBuilder(
  this, ToStringStyle.SHORT_PREFIX_STYLE);
accept metodu
Metodu override etmek gerekir. Şöyle yaparız.
@Override
protected boolean accept(Field field) {
  return !field.getName().equals("data");
}
reflectionToString metodu - Object
Açıklaması şöyle.
Alternatively, there is a method that uses reflection to determine the fields to test. Because these fields are usually private, the method, reflectionToString, uses AccessibleObject.setAccessible to change the visibility of the fields. This will fail under a security manager, unless the appropriate permissions are set up correctly. It is also slower than testing explicitly. 
Şöyle yaparız.
public String toString() {
  return ToStringBuilder.reflectionToString(this);
}
reflectionToString metodu - Object + ToStringStyle
Örnek
Şöyle yaparız.
public class Address {

  private String addressKey;
  private String postalCode;
  private String country;
  ...

  @Override
  public String toString() {
    return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE,
     false);
  }
}
setDefaultStyle metodu
Şöyle yaparız.
builder.setDefaultStyle(style);
toString metodu
Örnek
Şöyle yaparız.
@Override
public String toString() {
  return new org.apache.commons.lang3.builder.ToStringBuilder(this).
    append("field1", field1).
    append("field2", field2).
    toString();
}
toStringExclude metodu
Şöyle yaparız.
@Override
public String toString() {
  return ReflectionToStringBuilder.toStringExclude(this, "data");
}

Hiç yorum yok:

Yorum Gönder