-1

変数のタイプを確認するにはどうすればよいですか。この上 :

擬似コード:

do{
     VARIABLE =  JOptionPane.showInputDialog(null,"X = ");

}while(VARIABLE != Integer);

Set_X(VARIABLE);
4

3 に答える 3

2

この場合、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
    }
}
于 2013-11-02T13:48:32.253 に答える
0

次の例では、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"));
于 2013-11-02T13:54:02.150 に答える
0

明らかに、どのタイプでもチェックできません。ただし、既知の型のパーサーを使用して解析を試み、解析が成功した場合は、その型にキャストして先に進むことができます。

たとえば、整数解析ヘルパー関数はInteger.parseInt(String)です。残念ながら、失敗すると例外がスローされ(その時点でコードが醜く遅くなります)、ベースライブラリに代替手段があるかどうかはわかりません(たとえば、C#のものと同等TryParseです)。

于 2013-11-02T13:48:35.533 に答える