在Java中,如何在方法参数中正确使用抽象类?

时间:2016-02-10 19:16:57

标签: java class inheritance abstract extends

我有一个抽象类,如下所示:

public abstract class Mapper<T>{
    public T getResult(String json){
        ...
    }
}

T是json字符串映射到的对象类。

我有几个扩展这个抽象类的映射类;都具有不同的T值。我想要的是能够将父Mapper类插入到所有子类可以使用的方法中;所以我不必为每个子类编写单独的方法。我期望的方法如下:

public handleResult(String 1, String 2, boolean 3, Mapper<T> map){
    ....
}

这给了我一个无法解决T的问题,我尝试过这样:

public handleResult(String 1, String 2, boolean 3, Mapper map){
    ....
}

然而,这会导致空指针问题,因为它无法解析T进一步进入代码的问题。

有人可以指导我如何在方法中使用这个抽象类吗?

1 个答案:

答案 0 :(得分:3)

您的方法应如下所示

public <T> T handleResult(String p1, String p2, boolean p3, Mapper<T> map){
    ...
}

或者如果它不应该返回任何东西:

public <T> void handleResult(String p1, String p2, boolean p3, Mapper<T> map){
    ...
}