java "Object" class 的通用函数参数类型不匹配

java generic function parameter type mismatch for "Object" class

我有以下代码片段:

class pp<K, V> {
    public pp(K k, V v) {
        this.k = k;
        this.v = v;
    }

    private K k;
    private V v;
}
class my{
    public static void f(pp<? extends Object, ? extends Object> p){
        System.out.println(p);
    }
}
public class genericFunction {
    public static void main(String[] args) {
        my.f("abc", new Integer(2));//compilation failure
    }
}

主程序内部编译失败。说找

pp<? extends java.lang.Object,? extends java.lang.Object>

但找到了

java.lang.String,java.lang.Integer

如何解决?

你没有pp,你有两个参数。

将它们放入您的对象类型中:my.f(new pp<>("abc", new Integer(2)))

因为您传递的是文字参数(字符串和整数)而不是传递 pp 的对象。

尝试my.f(new pp<>("abc", new Integer(2)))

旁注:使用 作为类型名称