Java语法错误:类型栏的方法Foo未定义

Java语法错误:类型栏的方法Foo未定义,java,generics,Java,Generics,我在一本java书籍中发现了这一点,并想了解为什么会出现如下所述的错误: public class Wildcard<V> { V value; public Wildcard(V value) { super(); this.value = value; } public V getValue() { return value; } public void setValue(V

我在一本java书籍中发现了这一点,并想了解为什么会出现如下所述的错误:

public class Wildcard<V> {

    V value;

    public Wildcard(V value) {
        super();
        this.value = value;
    }

    public V getValue() {
        return value;
    }

    public void setValue(V value) {
        this.value = value;
    }

    public boolean sameObj(Wildcard<? extends V> v1, MyComparator<V> comparator) {
        return comparator.compare(this.value, v1.value);
    }

    public static void main(String[] args) {

        Wildcard<Integer> iTest = new Wildcard<Integer>(10);
        Wildcard<Number> nTest = new Wildcard<Number>(10);
        nTest.sameObject(iTest, new MyComparator<Number>() {
            public boolean compare(Number o1, Number o2) {
                return o1 == o2;
            }
        });
    }
}

interface MyComparator<V> {
    public boolean compare (V value,V value2) ;
}
公共类通配符{
V值;
公共通配符(V值){
超级();
这个值=值;
}
public V getValue(){
返回值;
}
公共无效设置值(V值){
这个值=值;
}

公共布尔sameObj(通配符这可能是一个输入错误。
sameObj
!=
sameObject

正如
col6y
所指出的,您应该将
sameObj
方法重命名为
sameObject

作为进一步的改进,我建议您更改该方法的签名,如下所示


public boolean sameObject(wildcard)很好的捕获,很难看到。是的,确实如此。更正。谢谢