2011-10-14 112 views
-1

如何調用變量show[j]actuate[j]其位於屬性()方法到個XML()。如果我在外面宣佈,我會得到ArrayIndexOutOfBoundException。 count是從其他查詢中獲得的變量。如何從一個方法調用數組變量到另一個變量

void Attribute() throws SQLException{ 
    Statement statement3=connection.createStatement(); 
    String Querystring3="select Show ,actuate from rlink"; 
    ResultSet Attrib=statement3.executeQuery(Querystring3); 
    String[] Show=new String[Count]; 
    String[] Actuate=new String[Count]; 
    while(Attrib.next()){ 
    Show[j]=Attrib.getString(1); 
    Actuate[j]=Attrib.getString(2); 
    j++; 
    } 
for(i=0;i<Count;i++){ 
    System.out.println(Show[i]+" "+Actuate[i]); 
} 
} 

    void xmlS() throws IOException{ 
    Element child = doc.createElement("body"); 
    root.appendChild(child); 
    for(i=0;i<LinkCount;i++){ 

     Element child1 = doc.createElement("link"); 


       child1.setAttributeNS(xlink,"xlink:show", Show[i]); 
       child1.setAttributeNS(xlink,"xlink:actuate",Actuate[i]); 

     } 
    } 

回答

0

你不能。他們局部變量Attribute(),所以他們只存在,只要你打電話給Attribute(),並且你從來沒有從Attribute()內呼叫xmlS()。你必須從Attribute()中調用xmlS(),並通過他們把它作爲參數。

1

首先,你不「來電」的變量。你調用方法和構造 - 它要求他們東西。你不用變量來做。

至於如何可以從xmlS方法得到你的變量訪問,有兩個直接的選擇:

  • 讓他們實例變量而不是局部變量,即把他們定義爲類的成員
  • 將它們作爲參數來xmlS,如果你可以調用該方法他們宣稱,其中方法。 (你不這樣做在你的代碼所展示的,但你可能在你的實際代碼來這樣做。)

這不是很明顯你的類是爲了做(和方法名唐也無法揭示任何事情),所以目前還不清楚哪一個實際上是合適的。如果它們邏輯上是對象狀態的一部分,則將它們作爲實例變量。否則,請考慮如何通過您的程序流程。這個數據是否應該從Attribute的方法中返回? (例如作爲演出/致動對的List

+0

上一篇:Java新手在哪裏可以學到所有這些 – user977830

+0

@ user977830:我建議你在學習Java的時候得到一本書*。雖然試驗和問題很好,但你應該從一開始就從一開始就從頭開始教你Java。堆棧溢出不是一個很好的替代品。 –

相關問題