如何从一个方法调用数组变量到另一个变量

时间:2011-10-14 07:25:37

标签: java variables jdbc

如何将位于Attribute()方法中的变量show[j]actuate[j]调用到xmls()中。如果我在外面宣布这一点,我会得到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]);

       }
   }

2 个答案:

答案 0 :(得分:1)

首先,你不要“调用”变量。你调用方法和构造函数 - 它要求他们某事。你不会对变量这样做。

至于如何从xmlS方法访问变量,有两个直接选项:

  • 将它们设为实例变量而不是局部变量,即将它们声明为类的成员
  • 将它们作为参数传递给xmlS,如果您可以从声明它们的方法中调用该方法 。 (你在你所展示的代码中没有这样做,但你可能在你的真实代码中这样做。)

你的课程的目的并不明显(方法名称也无助于揭示任何内容),因此不清楚哪个实际上是合适的。如果它们在逻辑上是对象状态的一部分,那么将它们作为实例变量。否则,请考虑数据应如何通过您的程序流动。是否应该从Attribute方法返回此数据? (例如,作为节目/动作对的List

答案 1 :(得分:0)

你做不到。它们是Attribute()中的局部变量,所以只要您拨打Attribute(),它们就会存在,而您永远不会从内部调用xmlS() Attribute()。您必须从xmlS()内拨打Attribute()并将其作为参数传递给它。