1

次の Groovy コードがコンパイルされない理由がわかりません

@groovy.transform.CompileStatic
class GenericTest<T extends String> extends TreeSet<T> {

    public boolean add2(T key) {
        return super.add(key)
    }
}

それは私に教えてくれます

[静的型チェック] - java.util.TreeSet#add(java.lang.Object ) を引数 [java.lang.String] で呼び出すことはできません

型消去に関連するものに違いないことは理解していますが、わかりません。

同様の Java コードは問題なくコンパイルされます

import java.util.TreeSet;

public class GenericTest2<T extends String> extends TreeSet<T> {

    public boolean add2(T val){
        return super.add(val);
    }
}
4

0 に答える 0