如何将位于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]);
}
}
答案 0 :(得分:1)
首先,你不要“调用”变量。你调用方法和构造函数 - 它要求他们做某事。你不会对变量这样做。
至于如何从xmlS
方法访问变量,有两个直接选项:
xmlS
,如果您可以从声明它们的方法中调用该方法 。 (你在你所展示的代码中没有这样做,但你可能在你的真实代码中这样做。)你的课程的目的并不明显(方法名称也无助于揭示任何内容),因此不清楚哪个实际上是合适的。如果它们在逻辑上是对象状态的一部分,那么将它们作为实例变量。否则,请考虑数据应如何通过您的程序流动。是否应该从Attribute
方法返回此数据? (例如,作为节目/动作对的List
)
答案 1 :(得分:0)
你做不到。它们是Attribute()
中的局部变量,所以只要您拨打Attribute()
,它们就会存在,而您永远不会从内部调用xmlS()
Attribute()
。您必须从xmlS()
内拨打Attribute()
并将其作为参数传递给它。