java各种toString方法

来源:互联网 发布:js 获取日期的年月日 编辑:程序博客网 时间:2024/05/21 10:21
  1. java的根类: Object
    Java代码  收藏代码
    1. /* getClass().getName() + '@' + Integer.toHexString(hashCode()) 
    2.      * </pre></blockquote> 
    3.      * 
    4.      * @return  a string representation of the object. 
    5.      */  
    6.     public String toString() {  
    7.     return getClass().getName() + "@" + Integer.toHexString(hashCode());  
    8.     }  
     所以我们见到的没有override toString()方法的都会调用Object的toString()方法。
  2. 数组:
    Java代码  收藏代码
    1. /** 
    2.  * [I@119298d 
    3.  */  
    4. int[] a = {1,2,3};  
    5. System.out.println(a.toString());  
    6. /** 
    7.  * [[I@119298d 
    8.  */  
    9. int[][] b = {{1},{2},{3}};  
    10. System.out.println(b.toString());   
     无法override 数组类的toString()方法,它是由虚拟机在第一次遇到时生成的数组数据类型.
  3. String类型
    Java代码  收藏代码
    1.    /** 
    2.     * This object (which is already a string!) is itself returned. 
    3.     * 
    4.     * @return  the string itself. 
    5.     */  
    6.    public String toString() {  
    7. return this;  
    8.    }  
  4. Set和List
    Java代码  收藏代码
    1. /** 
    2.  * [1, 1, 1, 1] 
    3.  * [1] 
    4.  */  
    5. List list = new ArrayList(Collections.nCopies(41));  
    6. System.out.println(list.toString());  
    7. Set set = new TreeSet(Collections.nCopies(41));  
    8. System.out.println(set.toString());  
     这个是由抽象类AbstractCollection实现的toString()方法:
    Java代码  收藏代码
    1.    public String toString() {  
    2.        Iterator<E> i = iterator();  
    3. if (! i.hasNext())  
    4.     return "[]";  
    5.   
    6. StringBuilder sb = new StringBuilder();  
    7. sb.append('[');  
    8. for (;;) {  
    9.     E e = i.next();  
    10.     sb.append(e == this ? "(this Collection)" : e);  
    11.     if (! i.hasNext())  
    12.     return sb.append(']').toString();  
    13.     sb.append(", ");  
    14. }  
    15.    }  
     
  5. Map
    Java代码  收藏代码
    1. /** 
    2.  * {} 
    3.  */  
    4. Map map = new HashMap();  
    5. System.out.println(map.toString());  
     这个是由抽象类AbstractMap实现的toString()方法: 
    Java代码  收藏代码
    1.    public String toString() {  
    2. Iterator<Entry<K,V>> i = entrySet().iterator();  
    3. if (! i.hasNext())  
    4.     return "{}";  
    5.   
    6. StringBuilder sb = new StringBuilder();  
    7. sb.append('{');  
    8. for (;;) {  
    9.     Entry<K,V> e = i.next();  
    10.     K key = e.getKey();  
    11.     V value = e.getValue();  
    12.     sb.append(key   == this ? "(this Map)" : key);  
    13.     sb.append('=');  
    14.     sb.append(value == this ? "(this Map)" : value);  
    15.     if (! i.hasNext())  
    16.     return sb.append('}').toString();  
    17.     sb.append(", ");  
    18. }  
    19.    }  
0 0
原创粉丝点击