gpt4 book ai didi

java - 抛出声明和接口(interface)方法

转载 作者:行者123 更新时间:2023-11-29 08:17:58 25 4
gpt4 key购买 nike

这是我正在处理的 FTP 应用程序中的一些代码。第一个方法来自一个接口(interface),该接口(interface)由监视服务器输出的类触发。

@Override
public void responseReceived(FTPServerResponse event) {
if (event.getFtpResponseCode() == 227) {
try {
setupPassiveConnection(event.getFullResponseString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

它调用第二个 setupPassiveConnection() 抛出一些异常。

public void setupPassiveConnection(String serverReplyString) throws UnknownHostException, IOException {
String passiveInfo[] = serverReplyString.substring(
serverReplyString.indexOf("(") + 1,
serverReplyString.indexOf(")")).split(",");

int port = (Integer.parseInt(passiveInfo[4]) * 256)
+ (Integer.parseInt(passiveInfo[5]));

String ip = passiveInfo[0] + "." + passiveInfo[1] + "."
+ passiveInfo[2] + "." + passiveInfo[3];

passiveModeSocket = new Socket(ip, port);

if( passiveModeSocket != null )
isPassiveMode();
}

由于无法通过第一种方法重新抛出异常,重写它的正确方法是什么?

最佳答案

你的意思是第一个代码块在一个类中,该类实现了一个接口(interface),该接口(interface)指定了没有 throws 子句的 responseReceived,所以你不能重新抛出?

在这种情况下,您的类必须存储结果并提供一个 API,客户端可以通过该 API 检索响应,即 getResponseCode() 方法。

看看 java.util.concurrent 类 ExecutorServiceFuture

关于java - 抛出声明和接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2931615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com