2013-04-13 4 views
2

Я пытаюсь получить этот метод для создания двух экземпляров класса «Спорт». Метод передается в массиве, который имеет информацию о классе, который затем отправляется в создаваемый конструктор.Как создать несколько экземпляров объектов Java из массива?

Однако я не уверен, как обращаться к экземпляру 1 или 2 с учетом моего кода.

public static void seperateValues(String sportDetail) { 
    String[] sportDetails = sportDetail.split(","); 
    System.out.println("Adding new sport to the Sport collection"); 
    System.out.println(sportDetail); 
    /* 
    for(int i=0; i<sportDetails.length; i++) //just used for testing whether it was splitting correctly { 
    System.out.println(sportDetails[i]); 
    }*/ 
    //name,usagefee,insurance,affiliationfees, then court numbers 
    //Tennis,44,10,93,10,11,12,13,14,15,16 
    int vlength; 
    vlength = sportDetail.length(); 
    new Sport(sportDetails); //this static methods loops twice, giving tennis and baseball 
    System.out.println(name); //this lists tennis and baseball respectively 
} 
+0

"' // этот статический метод петляет дважды, давая теннис и бейсбол', вы имеете в виду, что метод 'seperateValues ​​()' вызывается в петле в другом месте? –

+0

Каков статический метод, о котором вы говорите в комментарии? –

+1

Если весь этот метод в конце концов создает объект, почему бы не заставить его возвращать этот объект, чтобы затем вы могли ссылаться на него, где бы вы его не называли? –

ответ

1

Если вы просто хотите, чтобы обратиться к двум экземплярам спорта, вы можете просто сделать это:

Sport sport1 = new Sport(sportDetails); 
Sport sport2 = new Sport(sportDetails); 

А потом просто позвонить sport1 или sport2, когда вы хотите получить доступ к ним, однако, если вы хотите использовать это метод п число раз для п числа видов спорта, вы можете сделать это: Сначала измените метод separateValues() вернуть спорт, изменив эти строки:

public static void seperateValues(String sportDetail) { 

в

public static Sport seperateValues(String sportDetail) { 

В конце метода, сделать его вернуть спорт, как это:

Sport sport = new Sport(sportDetails); 
return sport; 

И тогда вы можете вызвать метод внутри цикла и создать список, так что вы можете создать многие виды спорта вам нужно:

//First declare a list of sports: 
List<Sport> sports = null; 

for (int i = 0; i<asManySportsAsYouWantToAdd; i++){ 
sports.add(separateValues(sportDetail)); 
} 

, а затем, чтобы получить доступ к каждому индивидуальный вид спорта, вы можете просто использовать:

sports.get(n); //Where n is place of the sport on the list 
+1

Точно, что я имел в виду. +1 –

0

Если предположить, что исходная строка sportDetail была «теннис, бейсбол», который затем превратился в массив 2 терминов, таких как sportDetails[0] = "tennis" и sportDetails[1] = "baseball", то в классе Sport вам просто нужно ссылаться на них как таковой.

Иными словами, sportDetails[0].

Смежные вопросы