1. ホーム
  2. java

[解決済み] Javaで期待されるエラー: ';'を解決するには?

2022-03-08 06:04:55

質問

私は error: ';' expected の問題で、私のJavaコードは以下の通りです。どうすれば解決できるでしょうか?

SortThreadMergeThread はクラスとして作成され、うまくコンパイルされています。

唯一の問題は

SortThread t1.join() = new SortThread(a);  
SortThread t2.join() = new SortThread(b);  

MergeThread m.start() = new MergeThread(t1.get(),t2.get());

この3行のコードには error: ';' expected の問題を解決します。

このメインでは、a と b の2つの配列が作成されます。 m配列はa&bをマージし、mainはmを表示します。

何かヒントや解決策があれば、とても助かります。

import java.util.Random;

public class Main{
    public static void main(String[] args){
       Random r = new Random(System.currentTimeMillis());

int n = r.nextInt(101) + 50;
int[] a = new int[n];
for(int i = 0; i < n; i++)
  a[i] = r.nextInt(100);

n = r.nextInt(101) + 50;
int[] b = new int[n];
for(int i = 0; i < n; i++)
  b[i] = r.nextInt(100);

SortThread t1.join() = new SortThread(a);  
SortThread t2.join() = new SortThread(b);  

MergeThread m.start() = new MergeThread(t1.get(),t2.get());

System.out.println(Arrays.toString(m.get()));
  }
}

解決方法は?

呼び出す変数の初期化が終わらないうちは、メソッドを呼び出すことはできません。

SortThread t1.join() = new SortThread(a);  
SortThread t2.join() = new SortThread(b);  

MergeThread m.start() = new MergeThread(t1.get(),t2.get());

は、次のようなものでなければなりません。

SortThread t1 = new SortThread(a);  
t1.start(); // <-- you probably want to start before you join.
SortThread t2 = new SortThread(b);
t2.start();  
t1.join();
t2.join();
MergeThread m = new MergeThread(t1.get(),t2.get());
m.start();
m.join();