我學習Java的泛型:https://docs.oracle.com/javase/tutorial/java/generics/bounded.html,我有下面的代碼示例有些疑惑:的Java泛型的理解型
public class Box<T> {
private T t;
public void set(T t) {
this.t = t;
}
public T get() {
return t;
}
public <U extends Number> void inspect(U u) {
System.out.println("T: " + t.getClass().getName());
System.out.println("U: " + u.getClass().getName());
}
public static void main(String[] args) {
Box<Integer> integerBox = new Box<Integer>();
integerBox.set(new Integer(10));
integerBox.inspect("some text"); // error: this is still String!
}
}
爲什麼wasnt的檢查()寫入方法,如下圖所示,而不是它是什麼?
public <T extends Number> void inspect(T t) { }
還有一些其他代碼示例具有以下語法。第一對代表什麼?
public <K,V> SomeClass<K,V>
靜態代表什麼?
public static <T> int countGreaterThan(T[] anArray, T elem)
你的榜樣'公共 SomeClass的'應該寫成'公共類SomeClass的':) –
freedev
'爲什麼waspect的inspect()方法寫成如下所示,而不是它的原因?'同樣爲什麼你不能有兩個同名的字段:因爲'T'已經用於別的東西了。 – biziclop