網頁

2014年3月13日 星期四

Commons Lang使用ToStringBuilder

Apache Commons Lang 提供ToStringBuilder類別,能夠快速地實作toString(),只要建構ToStringBuilder實例,並append所需要的field,同時還可以選格式,就可以得到不同格式的結果。




Mix加上@Override註解,確定正確地覆寫equals(),然後使用ToStringBuilder來輸出field值,同時利用ToStringStyle可以有不同格式的輸出,最後記得呼叫toString()取傳回值。
  1. ToStringStyle.DEFAULT_STYLE
  2. ToStringStyle.MULTI_LINE_STYLE
  3. ToStringStyle.NO_FIELD_NAMES_STYLE
  4. ToStringStyle.SHORT_PREFIX_STYLE
  5. ToStringStyle.SIMPLE_STYLE

package org.openyu.java.commons.lang;

import org.apache.commons.lang.builder.ToStringBuilder;

/**
 * The Class Book.
 */
public class Book {

 /** The id. */
 private long id;

 /** The name. */
 private String name;

 /**
  * Instantiates a new book.
  */
 public Book() {
 }

 /**
  * Gets the id.
  *
  * @return the id
  */
 public long getId() {
  return id;
 }

 /**
  * Sets the id.
  *
  * @param id
  *            the new id
  */
 public void setId(long id) {
  this.id = id;
 }

 /**
  * Gets the name.
  *
  * @return the name
  */
 public String getName() {
  return name;
 }

 /**
  * Sets the name.
  *
  * @param name
  *            the new name
  */
 public void setName(String name) {
  this.name = name;
 }

 /* (non-Javadoc)
  * @see java.lang.Object#toString()
  */
 @Override
 public String toString() {
  //return new ToStringBuilder(this)
  return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE)
  .append("id", id)
  .append("name", name)
  .toString();
 }
}






Mix撰寫一些測試程式碼,來檢查看看,是否符合預期,輸出格式要有id與name。

package org.openyu.java.commons.lang;

import static org.junit.Assert.*;

import org.junit.Test;

/**
 * The Class BookTest.
 */
public class BookTest {

 /**
  * To stringz.
  */
 @Test
 public void toStringz() {
  Book book = new Book();
  book.setId(1);
  book.setName("OpenYu");

  String result = book.toString();
  System.out.println(result);
  assertTrue(result.indexOf("id") > 0);
  assertTrue(result.indexOf("name") > 0);
 }
}






測試成功了,符合Mix的預期。




console查看其結果。

org.openyu.java.commons.lang.Book@64482923[id=1,name=OpenYu]



沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...