Java 调用泛型方法时出错

Java 调用泛型方法时出错,java,class,generics,methods,Java,Class,Generics,Methods,我有两个泛型类 class Value<T>{...} class Parameter<T>{...} 类值{…} 类参数{…} 我想从另一个类(Params)调用一个方法 public void put(参数键,值){ 参数。put(键、值); } 在我的主类中,我想用两个对象Value和Parameter调用它,但类型是这样的: Value<Integer> v1 = new Value<Integer>(2); Parameter

我有两个泛型类

class Value<T>{...}

class Parameter<T>{...}
类值{…}
类参数{…}
我想从另一个类(Params)调用一个方法

public void put(参数键,值){
参数。put(键、值);
}
在我的主类中,我想用两个对象Value和Parameter调用它,但类型是这样的:

 Value<Integer> v1 = new Value<Integer>(2);
 Parameter<Integer> p1 = new Parameter<Integer>(3);
 Params params = new Params();
 params.put(p1,v1);
Value v1=新值(2);
参数p1=新参数(3);
Params Params=新参数();
参数put(p1,v1);
我从Eclipse收到这个错误:

The method put(Parameter<T>, Value<T>) in the type Parameters is not applicable for the arguments (Parameter<Integer>, Value<Integer>)
类型参数中的方法put(参数,值)不适用于参数(参数,值)

关于如何调用此方法而不发生此错误的任何提示?这些类不是我开发的,因此我尝试调用它们,但没有成功。

编译器无法派生出您的类,因此您必须给它一个提示:

params.<Integer>put(p1,v1);
params.put(p1,v1);

让Params类成为泛型类难道没有意义吗?

t
有任何约束吗?对t@jeroenvanevel有约束意味着什么?我在类Params的beggining中看到的唯一奇怪之处是:@SuppressWarnings(“rawtypes”)。泛型声明没有问题。您确定没有多个名为
Parameter
Value
的类,并且使用一个包中的类,而
Params
类中的方法期望来自不同包的实例吗?@jambjo您是对的,我意识到我使用的是来自同一个包和一个jar中的一个库的类值,所以现在删除包中的类没有错误。
params.<Integer>put(p1,v1);