有时候写toString实在麻烦...
分多就散点分...@Override
public String toString() {
Field[] fields = this.getClass().getDeclaredFields();
StringBuffer formatString = new StringBuffer();
List<String> lst = new ArrayList<String>();
int i = 0;
try {
for (Field field : fields) {
formatString.append(field.getName());
formatString.append("\t=\t%");
formatString.append(++i);
formatString.append("$s\n");
lst.add(fields[i - 1].get(this) == null ? "" : fields[i - 1]
.get(this).toString());
}
} catch (Exception e) {
e.printStackTrace();
}
Object[] objs = lst.toArray();
return String.format(formatString.toString(), objs);
}

解决方案 »

  1.   

    咳,总结下,
    1.开始不知道有String.format这个方法,呵呵,学习了一下.
    2.List.toArray()这个方法很贱,虽然有个重载的方法,但为什么不按照泛型来转呢?
      坑爹呢,白给泛型了.
    3.写完了百度了下,还真有很多人写过了...汗...又造轮子...
    4.复习反射...
      

  2.   

    “.List.toArray()这个方法很贱,虽然有个重载的方法,但为什么不按照泛型来转呢?
      坑爹呢,白给泛型了”toArray出来的时候泛型还没出世呢,为保持向下兼容
      

  3.   

    List.toArray()...早生泛型...晚生
      

  4.   

    挺好的。为什么不用第三方jar包?
      

  5.   


    那多麻烦,就为这个引入jar包?那个jar包不好用...还是要手动的去add属性.不爽.
      

  6.   

    Object[] objs = lst.toArray();
    >>
    String[] sobjs = lst.toArray(new String[lst.size()]);