当前位置: 首页 > 面试题库 >

需要帮助返回线程运行方法中的对象

章永安
2023-03-14
问题内容

我有一个可扩展的Java类Thread,它基本上如下所示:

public class HttpRequestDispatcher extends Thread {
    private String url;
    private String method; // GET or POST
    private byte[] postData;

    public HttpRequestDispatcher(String url, String method, byte[] postData) {
        this.url = url;
        this.method = method;
        this.postData = postData;
    }

    public HttpRequestDispatcher(String url, String method) {
        this.url = url;
        this.method = method;
    }

    public void run() {
        ...
    }
}

我需要run()返回a ByteArrayOutputStream或a
的方法String。但是,由于它位于的run()方法中Thread,因此无法将方法的返回类型设置为a
ByteArrayOutputStream或a String

HttpRequestDispatcher班被称为所谓的OAuth.java类里面。

我如何解决这种情况?


问题答案:

有几种解决此问题的方法:

  • 使用线程外部的数据结构。在线程即将完成时,将对象传递给构造函数,并对其进行更新。

  • 使用回调方法。线程完成后,调用回调。

  • 使用java.util.concurrent.Future(Java> = 1.5):

Future表示异步计算的结果。提供了一些方法来检查计算是否完成,等待其完成以及检索计算结果。



 类似资料:
  • 我想在java程序上运行一个用checkstyle实现的简单自定义检查。我遇到了下面的错误。 请原谅,尽管这个错误是有道理的,但我无法在修复上取得任何进展。我已经在帖子的末尾贴出了完整的错误。下面是自定义检查的实现。 checkstyle配置为 包结构为 Com.PuppyCrawl.Tools.CheckStyle.API.CheckStyleException:无法初始化模块TreeWalke

  • 很抱歉打扰你们,我是编程新手,一直在这个程序上有问题。 谢了! *********编辑***************我从BMI中删除了int值,但有损转换错误仍然存在。有什么办法解决这个问题吗?

  • 我是堆栈溢出和python的新手,是否可以在类类型函数中返回实用程序函数,然后按类输入对其进行排序?如果您有任何建议或帮助,请告诉我。谢谢 output:File "/tmp/ipykernel _ 28447/2787243890 . py ",第37行显示(utility['Class'] == 'Resi)语法错误:扫描字符串文字时出现EOL

  • 我仍然是Java的新手,我正在努力使这个程序适合我的任务。 问题是: 杰夫在你家附近经营着一家当地的零售店。他已与您签订合同,让您创建一个交互式应用程序,以帮助他增加员工工资。创建一个名为 Details 的类,该类将包含员工 ID 号、名字、姓氏和薪水的获取和设置方法。包括一个名为getUpdateSalary()的方法,该方法将使员工的薪水增加10%。在您的主类中,包括一个名为 () 的静态方

  • 首先,我是C、C++、C#、Android和Swift的开发人员,但我绝对没有JavaScript、PHP或Web开发经验。 即只接受整数值的输入。 这是刀片代码:

  • /**程序可以将十进制转换为二进制并报告是否使用了非法字符*程序不能将二进制转换为十进制*/import java.util.scanner; /***这个类包含一个完整的程序,只有一个main()方法,用于*将非负十进制整数(即以10为基数的整数)转换为*正二进制整数(即以2为基数的整数)。要*转换的值是从命令行读入的。*/public class BaseConversions2{public