テキストファイルを並列配列に読み取り、条件に一致するエントリを別のファイルに出力するようにユーザーが要求できるようにするプログラムを作成しています。これらの配列はコードの最初で宣言しますが、長さはファイルから抽出されたデータに依存するため、後で初期化しないでください。
フィルタリングされた結果をファイルに出力するメソッドを書き込もうとしていますが、Eclipseは、初期化されていないため、パラメーターとして渡すことができないと言っています。ただし、ループ内で初期化されます。プログラムが必要な長さをまだ知らないので、私はそれらを早く初期化することができません。
コードの関連ビット
filterLocation(time, longitude, magnitude, latitude, location, description, entries);
メインメソッドからメソッドを呼び出そうとすると、エラーが発生します
public static void filterLocation (String[] time,
double[] latitude,
double[] longitude,
double[] magnitude,
String[] location,
String[] description,
int entries )
私が書き込もうとしているメソッドで、日食によってエラーが検出されません。
String[] time;
double[] latitude;
double[] longitude;
double[] magnitude;
String[] location;
String[] description;
変数が宣言されている場所、public static void main .. ..
if(entries!=0){
time = new String[entries];
latitude = new double[entries];
longitude = new double[entries];
magnitude = new double[entries];
location = new String[entries];
description = new String[entries];
それらが初期化され、whileループにネストされている場合、ifステートメントとtryブロック
filterLocationが呼び出されるメソッドの変数を初期化します。そこで変数を初期化していないようです。
編集:
コードに条件があります
if(entries!=0){
これにより、初期化が妨げられます。コンパイラは条件を指摘しています。エントリ= 0の場合はどうなりますか?その条件は満たされていません。
コンパイルエラーを回避するには、この条件を満たす必要があります。
以下のダミーコードを参照してください。
public static void main(String [] args){
int a;
if (args != null) {
a = 10;
} else {
a = 11;
}
sampleMethod(a);
}
public static void sampleMethod(int a) {
// TODO Auto-generated method stub
}
else条件を削除して、コンパイルエラーを確認してください。
あなたが問題を理解することを望みます。
編集
または、条件自体の内部でメソッドを呼び出します。ダミーコードを参照してください。
public static void main(String[] args) {
int a;
if (args != null) {
a = 10;
sampleMethod(a);
}
}
public static void sampleMethod(int a) {
// TODO Auto-generated method stub
}
編集
または、変数はクラスレベルである必要があります。
public class TestMethod {
private int a;
public static void main(String[] args) {
TestMethod method = new TestMethod();
method.wrapperMethod(args);
}
public void wrapperMethod(String[] args) {
if (args != null) {
a = 10;
}
sampleMethod(a);
}
public static void sampleMethod(int a) {
// TODO Auto-generated method stub
}
Java仕様からの引用
各メソッドパラメータ(§8.4.1)は、メソッドの呼び出し元(§15.12)によって提供された対応する引数値に初期化されます。
ローカル変数(§14.4、§14.14)は、明確な割り当て(§)のルールを使用して検証できる方法で、初期化(§14.4)または割り当て(§15.26)のいずれかによって、使用する前に明示的に値を指定する必要があります。 16)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加