我必须将两个字符串传递给一个线程,该线程将返回一个包含它们的数组,并且我必须使用可调用的。
这是我到目前为止所拥有的:
public class toArray implements Callable<String[]> {
private String string1 string2;
public toArray (String first, String second)
{
string1= first;
string2 = second;
}
@Override
public String[] call() throws Exception {
String [] allStrings = null;
allStrings[0] = string1;
allStrings[1] = string2;
return allStrings;
}
}
下面是主要内容:
public class theFuntion{
public static void main(String[] args) {
FutureTask<String[]> task = new FutureTask (new MyCallable());
ExecutorService es = Executors.newSingleThreadExecutor();
es.submit (task);
try{
String[] result = task.get();
System.out.println(result[1] + result[2]);
}
catch(Exception e){
System.err.println(e);
}
es.shutdown();
}
问题出在main
:它说结果需要一个 String[] 但它正在获取一个对象。如果我转换结果,它会说必须声明一个异常被抛出。