我想在类中实现通用接口。 考虑实现这个通用接口:
public interface Lookup<T>{
public T find(String name);
}
这是实现Lookup的非泛型类:
public class IntegerLookup implements Lookup<Integer>{
private Integer[] values;
private String[] names;
public IntegerLookup(String[] names, Integer[] values) {......}
//now I want to write the implemented method - find
我的问题是: 我该如何编写这个实现的方法? 我需要覆盖它吗?是吗?
public Object find(String name){...}
会好吗?或者:
public Integer find(String name){...}
答案 0 :(得分:3)
这里的语法
public class IntegerLookup implements Lookup<Integer>{
// ^
绑定提供的类型参数,即。 Integer
,Lookup
声明的类型变量,即。 T
。
所以,
public Integer find(String name){...}
这与做
相同Lookup<Integer> lookup = ...;
lookup.find("something"); // has a return type of Integer
答案 1 :(得分:0)
从您的评论中,您确实希望使用Object
作为返回类型。我无法想象您为什么要这样做,但如果是这样,您实际上需要实施Lookup< Object >
,而不是Lookup< Integer >
。
但不要这样做。使用Integer
作为返回类型,因为该类型代表您实现中的T
。