取得 - java 型名 文字列




Javaでの型の取得 (3)

私はJava初心者です。 私は数字がこのような何かを持つダブルかどうかを把握しようとしています:

if ( typeof ( items.elementAt(1) )== Double ) {
       sum.add( i, items.elementAt(1));
}

誰かが私にこの構文を正しく動作させるために構文をどのように再配置するか教えてもらえたらと感謝します。


この作業を行うには、正規表現を使用します。 以下のコードを参照してください。

public static void main(String[] args) {
    try {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter your content: ");
        String data = reader.readLine();            
        boolean b1 = Pattern.matches("^\\d+$", data);
        boolean b2 = Pattern.matches("[0-9a-zA-Z([+-]?\\d*\\.+\\d*)]*", data); 
        boolean b3 = Pattern.matches("^([+-]?\\d*\\.+\\d*)$", data);
        if(b1) {
            System.out.println("It is integer.");
        } else if(b2) {
            System.out.println("It is String. ");
        } else if(b3) {
            System.out.println("It is Float. ");
        }           
    } catch (IOException ex) {
        Logger.getLogger(TypeOF.class.getName()).log(Level.SEVERE, null, ex);
    }
}

これがGoogleの最初の質問であるので、ここでもJavaScriptスタイルのタイプの代替を追加します:

myObject.getClass().getName() // String

反射は遅くなりますが、そのタイプがDogかCatか、Animalのインスタンスではないかどうかを知りたい場合に有効です。 だからあなたは次のようなことをします:

if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}

上記の答えは、ヌルチェック部分が必要であることを除いて、機能しません。

それに答えるもう一つの方法は、ジェネリックを使用することです。あなたはアイテムの要素としてDoubleを持つことが保証されています。

List<Double> items = new ArrayList<Double>();




typeof