2015-05-07 28 views
0

我從webservice響應中消耗了很多元素(字段)。大多數元素數據類型是BigDecimal,BigInteger,xmlGregorianCalender,String,int等不是集合。將所有元素轉換爲字符串,而不考慮數據類型

我的需求是我需要寫一個實用程序的方法,應該返回一個字符串值,而不考慮類型。

我到處搜索,但我無法找到解決方案。 請指導我做到這一點。

我嘗試以下基於reply's.But我沒有得到正確的輸出

BigDecimal big = new BigDecimal(10); 
    BigInteger bigInt = new BigInteger("12334"); 
    String sampleStr1 = ToStringBuilder.reflectionToString(big); 
    String sampleStr2 = ToStringBuilder.reflectionToString(bigInt); 
    System.out.println("big::"+sampleStr1+"::bigint::"+sampleStr2); 

輸出:

big::[email protected][intVal= <null>,scale=0]::bigint::[email protected][signum=1,mag={12334},bitCount=0,bitLength=0,lowestSetBit=0,firstNonzeroIntNum=0] 

預期輸出:

big::10::bigint::12334 
+0

對於很多這些對象,您可以使用它們的'toString()'方法。 – CubeJockey

+0

@Trobbins感謝您的回覆。不能讓你。請你張貼一個例子,我是新來的java.Also有時.toString()將返回對象,而不是字符串的值。 – VelNaga

+2

'toString()'總是返回一個'String'。 – GriffeyDog

回答

1

將在toString()方法足夠了。它應該在所有類別上實施,並且應該產生所討論對象的最佳總結。

否則,你可以創建自己的這些對象的包裝和使用傑克遜或JAXB

轉換到JSON或XML
0

嘗試使用ToStringBuilder .reflectionToString()的阿帕奇公共圖書館提供。

示例代碼:格式

public class Test { 
    BigDecimal big = new BigDecimal(10); 
    BigInteger bigInt = new BigInteger("12334"); 

    public String toString() { 
    **ToStringBuilder.setDefaultStyle(ToStringStyle.SIMPLE_STYLE);** 
    return ToStringBuilder.reflectionToString(this); 
    } 

    public static void main(String args[]) { 
    Test test = new Test(); 
    System.out.println(test); 
    } 
} 

返回響應:

[email protected][field=value,..] 
[email protected][big=10,bigInt=12334] 

設置上面款式會給剛剛值

10,12334 

我已經重寫的ToString()獲得更好的控制。我不知道如何通過直接訪問Integer/BigDecimal來糾正輸出。

+1

可以請你發表一個示例轉換封裝類(BigDecimal&BigInteger)爲string.Also它真的可以爲xmlGregorianCalender? – VelNaga

+0

public class Test { BigDecimal big = new BigDecimal(10); BigInteger bigInt = new BigInteger(「12334」); public String toString(){ return ToStringBuilder。reflectionToString(本); } public static void main(String args []){ Test test = new Test(); System.out.println(test); } } – jags

+1

請[edit](http://stackoverflow.com/posts/30106636/edit)您的帖子在那裏添加適當的代碼。使用評論僅回覆其他人。 –

相關問題