2013-08-02 72 views
0

因此,自從我的第一個問題開始,我就走了很長一段路,有種感覺就像我知道自己在做什麼。Java:混合(數據類型)變量參數

無論如何,我在這裏有使用JAXB創建XML元素/值的此方法。它的設置類似於:

addXML(String...xml); 

這是用來像

javabean.addXML("tagname","tagvalue", "tagname2", "tagvalue2", etc..); 

現在,往往許多這些「變量值」的數值是。此外,他們可能被分配到varialbes,在這種情況下,只需鍵入變量名稱代替「tagvalue」 - 但是到現在爲止,首先需要轉換爲String。

所以,我的問題,是否有可能創建一個方法,需要VARIABLE量的字符串/雙對?

value1 = 1.0; 
value2 = 3.5403; 
javabean.addXML("tagname", 1.0, "tagname2", value2, etc...); 

我需要定義某種自定義的數組列表中的字符串和雙打之間交替,並將這些列表作爲參數的變化量?

謝謝

回答

1

創建您自己的Tag類的標籤名稱和標籤值的屬性。然後使用Tag爲您的可變參數的參數類型:

addXML(Tag... tags); 

,你可以打電話給你的方法是這樣的:

javabean.addXML(new Tag("tagname", 1.0), new Tag("tagname2", value2)); 
+0

照你說的做了。使用重載構造函數爲'int','string'和'double'值創建標記類,並使用可返回類'ArrayList '來存儲它們。所以'addXML(Tag ...標籤)'可以用正確的參數檢查和創建'JAXBElements'。感謝您的建議! – tenwest

0

兩個選項:

  1. 聲明你的方法addXml(Object ...),然後驗證輸入是正確交替的字符串,並在運行時在方法本身中加倍。這使您可以編寫一個與您的示例完全相同的函數,但不會讓Java靜態檢測方法調用中的任何錯誤。

  2. 定義一個類將字符串和數字配對,然後使用它。這要求調用者進行更多的輸入,但允許類型檢測器確保正確使用該方法。

0

最好不要用很多參數來處理呼叫。最好允許用戶多次調用該方法,並在內部添加標籤/值對。

所以方法調用會是這樣:

javabean.addDoubleElement(String tag, double value); 

注意addXML不是很描述。小心那些太籠統的名字。也請確保您不要混合編碼和類型addXML適用於執行編碼的類,但對描述數據類型的類不太好。

+0

addXML不是實際的名稱,只是爲了演示/提問的目的:) – tenwest

+0

啊,沒關係然後... –