2 つの文字列をスレッドに渡す必要があり、スレッドは両方を含む配列を返します。callable を使用する必要があります。
これが私がこれまでに持っているものです:
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[] を期待しているが、オブジェクトを取得していると書かれています。結果をキャストすると、スローされるように例外を宣言する必要があると表示されます。