Java 抽象方法中应该包含哪些参数
我有一个抽象类Java 抽象方法中应该包含哪些参数,java,Java,我有一个抽象类Client和4个子类Client1Client2 每个客户线: response = service.iszr(params); 其中响应和参数取决于类 在1班,这是 Client1ResponseType response Client1params params 现在我想向抽象类方法添加: protected abstract void sendRequest(?? response, ?? params); 但是我不知道应该是什么类型的 我试着这样想:
Client
和4个子类Client1
Client2
每个客户线:
response = service.iszr(params);
其中响应和参数取决于类
在1班,这是
Client1ResponseType response
Client1params params
现在我想向抽象类方法添加:
protected abstract void sendRequest(?? response, ?? params);
但是我不知道应该是什么类型的
我试着这样想:
protected abstract <I, O> void sendRequest(I input, O output);
protected abstract void sendRequest(I response, O params);
class Client1 extends Client <Client1ResponseType, Client1params>
受保护的抽象无效发送请求(I输入,O输出);
还有儿童
@Override
protected <Client1ResponseType, Client1params> void sendRequest(Client1ResponseType input,
Client1params output) {
output = service.iszrRobCtiAifo(input);
}
@覆盖
受保护的void sendRequest(客户端1响应类型输入,
客户端1参数输出){
输出=服务.iszrRobCtiAifo(输入);
}
但是没有成功。存在编译错误。我做错了什么?我不能完全理解你到底想做什么 但你想用某种方式让它变得通用 尝试对象
protected abstract void sendRequest(Object response, Object params);
您可以将此变量扩展到其他泛型,如
Object[]
在抽象类的声明中,您需要添加以下内容:
abstract class Client <I extends SOME_CLASS1, O extends SOME_CLASS2>
扩展类时,需要指定以下类型:
protected abstract <I, O> void sendRequest(I input, O output);
protected abstract void sendRequest(I response, O params);
class Client1 extends Client <Client1ResponseType, Client1params>
类Client1扩展了客户端
如果您有任何问题,请告诉我。查看我的回复,我编辑了它。嗯,但问题是响应和参数是生成的类,它不扩展任何内容,我不能编辑它们,因为我不能使用抽象类客户端是的,你可以@hudi,每个类都扩展对象(:@hudi然后使用回答中提到的
对象
,并根据需要对其进行类型转换。不,这不是这个回答的重点,当您扩展抽象类时,您将指定这些类型,因此不再需要进行类型转换。在客户端1
中,I
将是客户端1响应类型
,而O
将是beClient1params
如您所需