當涉及到有界類型時,我有一個理解Java類型擦除的問題。考慮這個: class Event {} // From the API
class FooEvent extends Event {}
abstract class Foo<EventType extends Event> {
public abstract <E extends EventType> void onEven
按照上Erasure of Generic Types Java文檔, 考慮表示在一個單鏈表一個節點的下列通用類: public class Node<T> {
private T data;
private Node<T> next;
public Node(T data, Node<T> next) }
this.data = data;
我正在使用Android Studio 1.1.0。 這將導致沒有任何警告: public static class A {
public Map<Integer, String> getMap() {
return null;
}
}
public static class B {
public void processA(A a) {
今天來到這裏,花了許多時間試圖重現/弄清楚發生了什麼。有人可以解釋爲什麼會發生這種情況,或者這是一個類型擦除/默認方法/ lambda的/多態性的錯誤?在取消的默認方法使得它運行良好,但我本來期望這個工作,因爲是 輸出: Works fine with an object
Calling consume
Hello
Calling accept with context
Hello
Ca