比如我用系统平台添加一条数据保存到数据库。这个保存到数据库的过程中会产生一个相应的对象也就是pojo
那么我现在得到了这个pojo里面有很多数据。一个字段对应一个嘛!现在我想把这个pojo里面的所有值(除了null和空)想把他变成一个文本形式的。看下面的例子
这个是我平台要输入的内容
   标题: 标题1        
   时间:2013年9月3日    
    游玩地点:北京   
   人物:张山,李四   
   内容:一起去爬山
现在我想通过一个方法想把这几个输入的内容变成一句话:
      标题1,2013年9月3日,北京,张山,李四,一起去爬山。
我现在不想一个一个的get然后拼接这样感觉一个量大而且很耗时间。
有没有哪位大神弄做求方法。谢谢了。
java方法功能

解决方案 »

  1.   

    我能想到的就是重写toString,然后传入这个对象,把这个对象的toString写到文件中
      

  2.   

    1楼的想法可以, 在pojo里面重写toString
      

  3.   

    pojo里面建一个构造方法
    A(Date d,Address add){
        this.d = d;
        this.add = add;
    }
    然后A a = new(d,add);
      

  4.   

    如何重写Tostring方法?可否详细说下?
      

  5.   

    看不懂啊?接下来怎么弄?给你pojo的类里面追加
    public String toString() {
    return("你想要的pojo的属性就可以了");
    }
    估计这样可以实现
      

  6.   

    fastjson 就这个功能  自己去看
      

  7.   

    后面调用的时候直接(对象.ToString) ,可以参考一下Integerdeng的toString方法 
      

  8.   

    这么简单的问题都搞不定?
    public String toString(Object o)
    {
        String msg = o.getXXX()+ "," + o.getXXX() + "," + o.getXXX();
        return msg; 
    }
      

  9.   

    通俗一点
    一个pojo对应一个class没问题吧?
    假如它是
    class o{
    time;
    address;
    person;
    content;
    ***//其他内容
    }
    那么在它中间加个方法toString();变成
    class o{
    time;
    address;
    person;
    content;
    ***//其他内容
    toString(){
     return this.time+","+this.address+","+this.person+","+this.content
    }
    }到时候pojo出来了,比如名字叫o1,那么o1.toString();就能得到想要的字符串
      

  10.   

    说到底,你还是要一个一个get的。你把这些get封装起来就成一个toString了。
      

  11.   

    反射啊@Override
    public String toString() {
    StringBuffer sbuff = new StringBuffer(); sbuff.append("{"); Field[] fields = this.getClass().getDeclaredFields();
    try {
    for (Field field : fields) {
    sbuff.append("\"" + field.getName() + "\":\"" + field.get(this) + "\",");
    }
    sbuff.deleteCharAt(sbuff.length() - 1);
    } catch (Exception e) {
    }
    sbuff.append("}"); return sbuff.toString();
    }
      

  12.   

    我一个表50多个字段,一个个get那要疯掉
      

  13.   

    重写一个get方法被,把所有属性拼成一个字符串不就行了?
      

  14.   


    field.get(this) 得到对应的属性是不是只能是pulic权限的啊。如果是private 或者是 protect会报错了啊!
      

  15.   


    field.get(this) 得到对应的属性是不是只能是pulic权限的啊。如果是private 或者是 protect会报错了啊!用field.setAccessible(true)可以不进行安全检查,不过不写我实际使用中也没发现问题
      

  16.   

    如果楼主熟悉json的话就换种思路。利用json-lib
    JSONObject.fromObject(你的pojo).toString();这样就能把你pojo中的所有属性名与属性值转化成
    key:value的形式了。而且你还可以使用JSONObject的JsonConfig进行过滤属性和更换属性名称属性值等等
      

  17.   


    其实我用反射转出来的那个就是个标准的json对象
      

  18.   


    其实我用反射转出来的那个就是个标准的json对象
    用反射当然可以,json-lib的原理是用反射。只是自己写代码太多了而且就为了这个一个地方的运用你把toString方式重写了返回你要的属性,如果其他地方要的不是这些属性呢,岂不是自己还要再去写代码。我建议楼主使用json-lib就是因为他可以根据JsonConfig进行自己需求变化的增改或变化属性大大的减少代码量和提高灵活度
      

  19.   


    其实我用反射转出来的那个就是个标准的json对象
    用反射当然可以,json-lib的原理是用反射。只是自己写代码太多了而且就为了这个一个地方的运用你把toString方式重写了返回你要的属性,如果其他地方要的不是这些属性呢,岂不是自己还要再去写代码。我建议楼主使用json-lib就是因为他可以根据JsonConfig进行自己需求变化的增改或变化属性大大的减少代码量和提高灵活度
    现成工具固然方便,但需求稍微改改就不能适应了,而且lz要求的也不是json格式的数据,而且他这个自己写段代码也不复杂,授人以鱼不如授人以渔。
      

  20.   

    你写个方法把查询出来的结果集遍历一遍添加到一个string 里面去不可以吗。
      

  21.   

    不懂java,但是我有个思路:getValueFromKey.一个for循环,从对象中依次取出键所对应的值,然后进行字符串拼接,不知道java行不。
      

  22.   

    你用的是eclipse或者myeclipse吧。来跟我做
    1.alt+shift+s
    2.选择Generate toString() // 倒数第4行
    3.默认情况下勾选了fields,即表示所有字段,你也可以任意勾选。
    4.ok
    你看看tostring方法。
    如果你不想要 ", name=" 这些东西?使用正则替换
    , \w+=  替换为 ,ok?
      

  23.   

    恩 这个我有时间可以试下。json我明白