我需要实现一个具有两个泛型类型参数的接口和一个方法,该方法将一个泛型类型作为参数,另一个泛型类型作为返回类型。这就是我实现它的方式,但我不知道它是否正确。
public interface Evaluate<K, T>
{
T use(K k);
}
另外,我需要扩展Java的ArrayList并向其添加方法,例如map。 map()方法需要使用一个Evaluate类型的参数并返回一个新列表。我不知道是否应该实现接口以及如何在我的方法中实际传递参数。这是我到目前为止的尝试:
public class Array<K, T> extends java.util.ArrayList<T> implements Evaluate<K,T>
{
public ArrayList<T> map(Evaluate f1)
{
}
}
答案 0 :(得分:0)
要么:
public class Array<K, T> extends java.util.ArrayList<T> implements Evaluate<K,T> {
T use(K k) {
// implementation
}
public java.util.ArrayList<T> map() {
// use(K) somewhere here
}
}
或
public class Array<K, T> extends java.util.ArrayList<T> {
public java.util.ArrayList<T> map(Evaluate<K,T> evaluate) {
// use evaluate somewhere here
}
}
您的实现没有在接口中声明的T use(K)
的定义 - 您可以仅在抽象类或扩展另一个类的接口中使其未实现。此外,您的参数是原始的,因为您没有像map(Evaluate<K,T> f1)
那样编写它(Java不会自动替换泛型参数)。