在 Java 中,如何在方法参数中正确使用抽象 类?
In Java, how do I properly use an abstract classes in method Parameters?
我有一个摘要 class 看起来像这样:
public abstract class Mapper<T>{
public T getResult(String json){
...
}
}
T 是 json 字符串映射到的 object class。
我有几个映射 classes 扩展了这个抽象 class;都具有不同的 T 值。我想要的是能够将 parent Mapper class 插入到所有 children classes 都可以使用的方法中;所以我不必为每个 child class 编写单独的方法。我预期的方法如下所示:
public handleResult(String 1, String 2, boolean 3, Mapper<T> map){
....
}
这给我带来了无法解析 T 的问题,我试过这样:
public handleResult(String 1, String 2, boolean 3, Mapper map){
....
}
然而,这会导致空指针问题,因为它无法解析 T 应该进一步进入代码的内容。
任何人都可以指导我如何在方法中使用这个摘要 class 吗?
您的方法应如下所示
public <T> T handleResult(String p1, String p2, boolean p3, Mapper<T> map){
...
}
或者如果它不应该 return 任何东西:
public <T> void handleResult(String p1, String p2, boolean p3, Mapper<T> map){
...
}
我有一个摘要 class 看起来像这样:
public abstract class Mapper<T>{
public T getResult(String json){
...
}
}
T 是 json 字符串映射到的 object class。
我有几个映射 classes 扩展了这个抽象 class;都具有不同的 T 值。我想要的是能够将 parent Mapper class 插入到所有 children classes 都可以使用的方法中;所以我不必为每个 child class 编写单独的方法。我预期的方法如下所示:
public handleResult(String 1, String 2, boolean 3, Mapper<T> map){
....
}
这给我带来了无法解析 T 的问题,我试过这样:
public handleResult(String 1, String 2, boolean 3, Mapper map){
....
}
然而,这会导致空指针问题,因为它无法解析 T 应该进一步进入代码的内容。
任何人都可以指导我如何在方法中使用这个摘要 class 吗?
您的方法应如下所示
public <T> T handleResult(String p1, String p2, boolean p3, Mapper<T> map){
...
}
或者如果它不应该 return 任何东西:
public <T> void handleResult(String p1, String p2, boolean p3, Mapper<T> map){
...
}