簡體   English   中英

Java對象轉換為整數和字符串包裝器

[英]Java Object Conversion to Integer and String wrapper

我有一個函數的java.lang.Object返回類型。 我想驗證返回的任何Object值是數字類型( doublelongintbyteDoubleLongByteFloatDouble ....),如果是真的想要轉換為Integer包裝器引用類型。 另外,如果Object實例包含一個String值,我希望將其存儲在String引用中。

具有函數的Object返回類型。 我想驗證返回的任何對象值都是數字類型(雙精度或長整數或整數或字節或雙精度或長整數或字節或浮點數或雙精度..)

if (obj instanceof Number)
    ...


如果是真的要轉換為Integer包裝器引用類型

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


另外,如果Object實例包含一個String值,我希望將其存儲在String引用中。

...
else if (obj instanceof String)
    val = obj;

您可以執行以下操作:

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;
}

返回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
}

您可以通過類型轉換將其分配給String變量

if (object instanceof String){
   stringVariable = (String)object;
}

盡管您可能遇到了嚴重的設計問題,但是要實現所需的功能,可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM