"Object"类的 java 泛型函数参数类型不匹配

标签 java function generics parameters extends

我有以下代码片段:

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
    }
}

它无法在 main 中编译。说找

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

但是找到了

java.lang.String,java.lang.Integer

如何解决?

最佳答案

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

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

关于 "Object"类的 java 泛型函数参数类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53465002/

相关文章:

c - 不是将所有参数传递给函数不好吗?

javascript - 无论如何让实例共享相同的功能但同时具有私有(private)变量?

java - 接口(interface) I 不能用不同的参数多次实现 : I<String> and I<String>

java - 从 IDE 运行 Spark SQL 应用程序的 setJars() 方法

java - java中使用runnable接口(interface)实现线程

java - 验证每个电子邮件地址 (Firebase)

c - C 中的函数是否有 "type name"?

swift - 通用类型与同一类型不同

c# - 为什么必须对后代类型重新声明泛型类型限制?

java - 我如何摆脱这个 java.lang.ArrayIndexOutOfBoundsException 错误?