Data 类型中的方法 insert(String, Class<T>) 不适用于参数
The method insert(String, Class<T>) in the type Data is not applicable for the arguments
我想要一个接受泛型类型参数的函数,但我收到了使用它的错误消息。如何在 Java 中正确使用泛型?
Plane plane = new Plane();
Car car = new Car();
data.insert("fast", car);
data.insert("super fast", plane);
...
<T> void insert(String a, Class<T> object) {
System.out.println("Inserting " + object.getName() + a);
}
您的插入函数需要一个像 Plane.class
这样的 Class 对象,这就是 object.getName()
已知的原因。
我认为你的意图是这样的:
<T extends HasName> void insert(String a, T object) {
System.out.println("Inserting " + object.getName() + a);
}
其中 HasName 是一个接口(也可以是超级 class),方法 getName
,由 Car 和 Plane 实现(扩展)。
这样才能保证object.getName()
可以被调用。
我想要一个接受泛型类型参数的函数,但我收到了使用它的错误消息。如何在 Java 中正确使用泛型?
Plane plane = new Plane();
Car car = new Car();
data.insert("fast", car);
data.insert("super fast", plane);
...
<T> void insert(String a, Class<T> object) {
System.out.println("Inserting " + object.getName() + a);
}
您的插入函数需要一个像 Plane.class
这样的 Class 对象,这就是 object.getName()
已知的原因。
我认为你的意图是这样的:
<T extends HasName> void insert(String a, T object) {
System.out.println("Inserting " + object.getName() + a);
}
其中 HasName 是一个接口(也可以是超级 class),方法 getName
,由 Car 和 Plane 实现(扩展)。
这样才能保证object.getName()
可以被调用。