как вызвать переменную массива из одного метода в другую переменную - PullRequest
0 голосов
/ 14 октября 2011

Как мне вызвать переменные show[j] и actuate[j], которые находятся в методе Attribute (), в 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 ]

1 голос
/ 14 октября 2011

Во-первых, вы не «вызываете» переменные.Вы вызываете методы и конструкторы - он просит их сделать что-то.Вы не делаете это с переменными.

Что касается того, как вы можете получить доступ к своим переменным с помощью метода xmlS, есть две немедленные опции:

  • Сделать их экземпляр переменных вместо локальных переменных, т.е. объявлять их как члены класса
  • Передавать их как параметры в xmlS, если вы можете вызвать этот метод из методагде они объявлены.(Вы не делаете это в коде, который вы показали, но вы можете делать это в своем реальном коде.)

Не очевидно, что должен делать ваш класс (иимена методов тоже не помогают ничего раскрыть), поэтому неясно, что на самом деле уместно.Если они логически являются частью состояния объекта, то сделайте их переменными экземпляра.В противном случае подумайте, как данные должны проходить через вашу программу.Должны ли эти данные быть возвращены из метода Attribute?(например, как List пар шоу / активация)

0 голосов
/ 14 октября 2011

Вы не можете.Это локальные переменные в Attribute(), поэтому они существуют только до тех пор, пока вы звоните на Attribute(), и вы никогда не вызовете xmlS() из Attribute().Вам нужно будет вызвать xmlS() изнутри Attribute() и передать их в качестве аргументов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...