ベクトルの要素がクラスのインスタンスでないかどうかを確認する方法を知りたいと思います。 ベクトルmの要素がsumにインクリメントするクラスに存在する場合です。 i
がクラスのインスタンスでない場合、-1を返します。ここに私のコードです:クラスのインスタンスではありません。ベクトル
public static int CountHighs(Vector m) {
int sum = 0;
for (int i = 0; i < m.size(); i++) {
try {
if (m.get(i) instanceof HighRights) {
sum += 1;
} else if ((!m.get(i) instanceof Highrights) || (!m.get(i) instanceof LowRights)) {
sum = -1;
}
} catch (NullPointerException E) {
System.out.println("Error");
System.exit(0);
return 0;
}
return sum;
}
}
私は演算子 "!"を使用しています。ここに回答者の利益のために。
!m.gets
はエラーの原因となります。要素がこのクラスのインスタンスでないかどうかを示す方法があるかどうか疑問に思っていました。
ので、正確な問題が何であるか:あなたは
else if
を使用するので、あなたの最終的なコードは次のようになりますので、また、それはとてもチェックが不要であるm.get(i)
が可能とHighRights
のインスタンスことができないことを意味しますか? – Mureinik@Mureinik!m.getsは私にエラーを引き起こします、要素がこのクラスのインスタンスでないかどうかを示す方法があるかどうか疑問に思っていました。あいまいさに対する謝罪 – duldi
'catch(NullPointerException E)'何ですか?そしてそのブロックは何か役に立つものさえしません。 – Tom