変数のタイプを確認するにはどうすればよいですか。この上 :
擬似コード:
do{
VARIABLE = JOptionPane.showInputDialog(null,"X = ");
}while(VARIABLE != Integer);
Set_X(VARIABLE);
変数のタイプを確認するにはどうすればよいですか。この上 :
擬似コード:
do{
VARIABLE = JOptionPane.showInputDialog(null,"X = ");
}while(VARIABLE != Integer);
Set_X(VARIABLE);
この場合、VARIABLE
変数の型は になりますString
。
その変数を試す/キャッチInteger.valueOf
して、そのInteger
値を取得できます。
aNumberFormatException
がスローされた場合、ユーザー入力を に変換できないことを意味しますInteger
。
たとえば(ドラフトコード):
// initializing Integer interpretation
Integer input = null;
// infinite loop - breaks only once user has entered a valid integer-parseable value
while (true) {
// trying to convert user input after showing option pane
try {
input = Integer.valueOf(JOptionPane.showInputDialog(null, "X = "));
// breaking infinite loop
break;
}
// conversion unsuccessful
catch (NumberFormatException nfe) {
// TODO handle any error message if you need to
}
}
次の例では、Class オブジェクトを使用して、オブジェクトのクラス名を出力します。
void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}
したがって、このコードは必要なチェックを実行します。
do{
VARIABLE = JOptionPane.showInputDialog(null,"X = ").getClass().getName();
}while(!(VARIABLE.equals("java.lang.Integer"));
明らかに、どのタイプでもチェックできません。ただし、既知の型のパーサーを使用して解析を試み、解析が成功した場合は、その型にキャストして先に進むことができます。
たとえば、整数解析ヘルパー関数はInteger.parseInt(String)
です。残念ながら、失敗すると例外がスローされ(その時点でコードが醜く遅くなります)、ベースライブラリに代替手段があるかどうかはわかりません(たとえば、C#のものと同等TryParse
です)。