我有一个从 HTTP 下载数据的线程。我使用流 API 每 1 秒到大约 10 分钟获取一次。
从 HTTP 服务器接收数据后,我需要将此数据发送到 MyMainClass
中的方法。如果没有静态方法,我该如何做到这一点?我不喜欢使用静态方法。
public class MyMainClass {
public static void main(String[] args) {
GetData getData = new GetData();
getData.start();
}
public static void useText(String text) {
System.out.println(text);
// do something...
}
}
public class GetData extends Thread {
@Override
public void run() {
String text;
/* Download text from HTTP and save it to "text".
* Every 1 seconds to about 10 minutes using stream API.
* text= "abc...";
* If there are no errors, run method never exit.
*/
MyMainClass.useText(text);
}
}
最佳答案
使您的方法成为实例方法,并创建可以传递给 Thread
实例的类的实例
public static void main(String[] args) {
GetData getData = new GetData(new MyMainClass());
getData.start();
}
public void useText(String text) {
System.out.println(text);
// do something...
}
在 GetData
类的 run
方法中,您可以使用 MyMainClass
实例作为回调。
public GetData extends Thread {
public GetData(MyMainClass instance) {
this.instance = instance;
}
private MyMainClass instance;
@Override
public void run() {
String text;
/* Download text from HTTP and save it to "text".
* Every 1 seconds to about 10 minutes using stream API.
* text= "abc...";
* If there are no errors, run method never exit.
*/
instance.useText(text);
}
}
关于Java:定期从线程向主类发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25615068/