2016-08-11 3 views
-2

Я хочу передать серию той же строки, используя LOOP, из метода класса A в метод класса B. Ниже приведен код моего новичка, но он не может быть доставлен. Благодаря!генерировать, добавлять и отправлять строку в другой класс с использованием LOOP IN Java

import java.util.UUID; 

public class ClassA { 

    public String ClassAMethod (String data){ 
     String theString; 
     StringBuilder builder = new StringBuilder(); 
     ClassA classA = new ClassA(); 
      int k=0; 

      do { 
       k++; 
       String generated = classA.generateString(data); 
       builder.append(generated); 
       theString=builder.toString();theString+=theString; 
        return theString; 
       } while(k<5); 
     } 


    public String generateString(String genText){ 
      genText = (UUID.randomUUID().toString());   
        return genText; 
      } 

} 


public class ClassB { 
    private static String data; 

     public static void main(String arg[]) { 
      ClassA classA = new ClassA(); 
      String sentString = classA.ClassAMethod(data); 
      System.out.println(sentString); 
     } 
} 
+0

Можете ли вы дать ожидаемый результат , для пробного запуска вашей программы? –

+1

Какова цель передачи 'data' методу' ClassAMethod() '? Вы никогда не назначали ему значение, поэтому вы передаете значение «null». В 'ClassAMethod()' вы передаете это значение "null" для 'generateString()'. Зачем? Вы даже не пытаетесь использовать его ни для чего. --- Кроме того, почему вы создаете новый экземпляр класса ClassA в методе экземпляра 'ClassA'? – Andreas

ответ

1

Основная ошибка в том, что вы returning из вашего цикла, что вы хотите сделать, это возвращение после него.

Также как вы находитесь в classA, вы не должны создавать экземпляр другого объекта classA.

Попробуйте

public String ClassAMethod(){ 
    StringBuilder builder = new StringBuilder(); 
    int k=0; 

     do { 
      k++; 
      String generated = this.generateString(); 
      builder.append(generated); 
     } while(k<5); 

     return builder.toString(); 
    } 

Редактировать

Как @Andreas metions выше, generateString() не следует передавать какие-либо аргументы так, чтобы изменить

public String generateString(){ 
     return (UUID.randomUUID().toString());   
}