你这返回的 toString() 之前的是什么? 打印出来看看

解决方案 »

  1.   


    你试一试这个方法:template<typename T>  
    static size_t Convert (char buf[], const T value)  
    {  
        static const char digits[] = "9876543210123456789";  
        static const char* zero = digits + 9;  
     
        T i = value;  
        char* p = buf;  
      
        do  
        {  
            int lsd = static_cast<int>(i % 10);  
            i /= 10;  
            *p++ = zero[lsd];  
        } while (i != 0);  
      
        if (value < 0)  
        {  
            *p++ = '-';  
        }  
        *p = '\0';  
        std::reverse (buf, p); // #include <algorithm>  
      
        return p - buf;  
      
      
    static inline void IntToString (std::string& out, const int value)  
    .{  
        char buf[32];  
        Convert<int>  (buf, value);  
        out.append (buf);  

      

  2.   

    this.getSession().createSQLQuery(sql)这个结果是个object数组
      

  3.   

    你先确保this.getSession().createSQLQuery(sql) 得到的结果能用Long型接收,然后再去toString();
      

  4.   

    我加了uniqueResult(),现在应该是数字太长了
      

  5.   

    现在的情况是长度肯定是超过Long的
      

  6.   

    就是select的那个数字
    你能确定吗,
      

  7.   

    就是select的那个数字
    你能确定吗,
    你说的是代码还是查询结果
    查询结果是哪个数字,代码的话debug
    如果打印的话会默认toString方法变成这样
    [B@b6e21b
      

  8.   

    是对象,可是在转toString的时候本应该是00000000566809088
    但是却变成了[B@b6e21b这种
      

  9.   

    首先,你必须了解toString()方法,下面是Object的toString()方法:
        public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
    他的默认输入是这样的,因为是对象,且没有覆盖toString()方法的情况下,会调用父类的toString()方法,所以输出为:
    [B@b6e21b
    你的查询语句返回实际是String对象,所以调用String的toString()方法,其实也是调用Object的toString()方法,这就是你为什么会看到@符号的原因,