0

関数からのjava.lang.Object戻り値の型があります。Object返された値が数値型(doubleまたはlongまたはintまたはbyteまたはDoubleまたはLongまたは....)であることを確認しByte、それが真のFloat場合Doubleは整数ラッパー参照型に変換したい。また、ObjectインスタンスがString値を保持している場合は、それを String 参照に格納する必要があります。

4

4 に答える 4

4

Object関数からの戻り値の型を持つ。返されたオブジェクト値が数値型であることを確認したい (double または long または int または byte または Double または Long または Byte または Float または Double ....)

if (obj instanceof Number)
    ...


true の場合、Integer ラッパー参照型に変換したい

if ...
    val = (Integer) ((Number) obj).intValue();


また、オブジェクト インスタンスが文字列値を保持している場合は、文字列参照に格納する必要があります。

...
else if (obj instanceof String)
    val = obj;
于 2012-08-21T07:30:29.780 に答える
0

おそらく深刻な設計上の問題がありますが、目的を達成するために、instanceof演算子またはgetClass()メソッドを使用できます。

Object o = myFunction();
if(o instanceof Integer) { //or if o.getClass() == Integer.class if you want 
                       only objects of that specific class, not the superclasses
   Integer integer = (Integer) o;
   int i = integer.intValue();
}
   //do your job with the integer
if(o instanceof String)
   //String job
于 2012-08-21T07:32:39.863 に答える
0

次のようなことができます:

Object obj = getProcessedObject();
if(obj instanceof Number) {
    // convert into a Integer wrapper reference type
Integer ref1 = ((Number)obj).intValue();
}
if(obj instanceof String) {
// process object for String
String ref = (String)obj;
}
于 2012-08-21T07:31:51.483 に答える
0

Object を返すメソッドは、double、long、int などのプリミティブ型を返すことはできません。

instanceof を使用して、実際に返される型を確認できます。

if (object instanceof Number){
    // want to convert into a Integer wrapper reference type
    object = ((Number)object).intValue();  // might lose precision
}

型キャストによって文字列変数に割り当てることができます

if (object instanceof String){
   stringVariable = (String)object;
}
于 2012-08-21T07:32:00.203 に答える