Integer轉換為String類型


在學習泛型時,遇到了一個小問題:

  Integer i = 2;
  String s = (String) i;

  Integer類型轉換為String類型,本來想直接用強制轉換,結果報錯:

  Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

  經過搜索資料后發現,這樣的轉換只能通過以下方式進行:

   Integer i = 2;
  String s = i.toString();    

  這里給出一個稍微復雜點的代碼,這個例子是Oracle官方解釋泛型與不使用泛型的優勢的一個例子,關於泛型的更具體的解釋我可能會在之后的某個時間重新寫一篇。

package graph;

import java.util.*;

public class JustTest {	
	public static void main (String[] args) {
		ObjectContainer myObj = new ObjectContainer();
		//store a string
		myObj.setObj("Test");
		System.out.println("Value of myObj:" + myObj.getObj());
		//store an int (which is autoboxed to an Integer object)
		myObj.setObj(3);
		System.out.println("Value of myObj:" + myObj.getObj());
		
		List objectList = new ArrayList(); // 不指定類型時,默認使用原始類型 Object
		objectList.add(myObj);
		//We have to cast and must cast the correct type to avoid ClassCastException!
		//String myStr = (String)((ObjectContainer)objectList.get(0)).getObj(); // 運行時這里報錯
		String myStr = ((ObjectContainer)objectList.get(0)).getObj().toString();
		System.out.println(myStr);
	}
}


class ObjectContainer {
    private Object obj;

    public Object getObj() {
        return obj;
    }

    public void setObj(Object obj) {
        this.obj = obj;
    }
    
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM