如何从正在运行的线程中获取字符串



我正在使用RXTX API从传感器获取数据。https://web.archive.org/web/20200530110106/rxtx.qbang.org/wiki/index.php/Event_Based_Two_Way_Communication

我复制粘贴了代码,到目前为止它是有效的。如何将接收到的数据存储在字符串中?

//I can't store the word anywhere
public static void main ( String[] args )
{
try
{
(new TwoWaySerialComm()).connect("COM3");
}
catch ( Exception e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}

我想这样:

public static void main ( String[] args )
{
try
{
String data = (new TwoWaySerialComm()).connect("COM3");
System.out.println("My sensor data: " + data);
}
catch ( Exception e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}

非常感谢。

如果需要从新线程返回任何内容或抛出异常,则需要使用java.util.concurrent.Callable接口创建一个线程并实现call((方法。

它类似于Runnable。然而,启动Thread的过程略有不同,因为Thread类没有任何接受Callable对象的构造函数。

Callable<String> callable = () -> {
// do stuff
return "String that your want to return";
};
FutureTask<String> task = new FutureTask<>(callable);
new Thread(task).start();
System.out.println(task.get());

最新更新