“对象”类的Java泛型函数参数类型不匹配

时间:2018-11-25 05:49:25

标签: java function generics parameters extends

我有以下代码段:

ec2_result.instances[0].private_ip_address

无法在主体内部进行编译。说要找

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>

如何解决?

2 个答案:

答案 0 :(得分:2)

您没有pp,有两个参数。

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

答案 1 :(得分:2)

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

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

旁注:使用Pascal casing作为类型名称