Java泛型類型推斷
類型推斷表示Java編譯器查看方法調用及其對應的聲明,以檢查和確定類型參數。 推斷算法檢查參數的類型,如果可用,則返回分配的類型。 推斷算法嘗試找到一個可以填滿所有類型參數的特定類型。
編譯器會生成未經檢查的轉換警告,而不使用內部類型推斷。
語法
Box<Integer> integerBox = new Box<>();
在上面語法中,
- Box −
Box
是一個泛型類。 -
<>
− 尖括號運算符表示類型推斷。
描述
使用尖括號運算符編譯器可確定參數的類型。該操作符可從Java SE 7版本開始支持使用。
示例
使用您喜歡的編輯器創建以下java程序,並保存到文件:TypeInference.java 中,代碼如下所示 -
package com.yiibai;
public class TypeInference {
public static void main(String[] args) {
// type inference
Box2<Integer> integerBox = new Box2<>();
// unchecked conversion warning
Box<String> stringBox = new Box<String>();
integerBox.add(new Integer(198));
stringBox.add(new String("Hello World"));
System.out.printf("Integer Value :%d\n", integerBox.get());
System.out.printf("String Value :%s\n", stringBox.get());
}
}
class Box2<T> {
private T t;
public void add(T t) {
this.t = t;
}
public T get() {
return t;
}
}
執行上面代碼,得到以下結果 -
Integer Value :198
String Value :Hello World