1. 程式人生 > >型別資訊(Type Info)

型別資訊(Type Info)

1.2 泛化的Class引用:

Integer Class物件不是Number Class物件的子類。例如如下程式碼是錯誤的。

Class<Number> genericNumberClass = int.class;

為了建立一個Class引用,它被限定為某種型別,或該型別的任何子型別,需要將萬用字元?與extends關鍵字相結合,建立一個範圍。

例項:BoundedClassReferences.java

package net.pmpa.typeinfo;

public class BoundedClassReferences {
	  public static void main(String[] args) {
	    Class<? extends Number> bounded = int.class;
	    bounded = double.class;
	    bounded = Number.class;
	    // Or anything else derived from Number.
	  }
	}

向Class新增泛型語法的原因僅僅是為了提供編譯期型別檢查。

1.3 型別轉化前先做檢查:

關鍵字instanceof,返回一個布林值,告訴我們物件是不是特定型別的例項。進行向下轉型前,如果沒有其他資訊可以告訴你這個物件是什麼型別,那麼使用instanceof是非常重要的,否則就會得到一個ClassCastException異常。