Каков тип данных параметра Java varargs (...)? - PullRequest
3 голосов
/ 18 февраля 2010

Я пытаюсь добавить информацию из main () в класс элементов, где я храню информацию в хэш-сет

у меня есть 3 класса

  1. проект - основной ()

  2. libaray - функция addBandMembers

  3. Item - addband (String ... member)

Я добавляю информацию о CD. во-первых, я добавляю группу, количество песен, название - что хорошо работает

тогда в другой функции я пытаюсь добавить участников группы. Я хочу держать это отдельно. Где у меня проблемы, это назначить членов группы ..

Я понимаю, что, как работает Varargs, просто не знаю, как назначить это в строку

Я покажу только кусочки кода, чтобы этот пост был простым и коротким.

вот что у меня есть:

Main ()

item = library.addMusicCD("Don't Let Go", "Jerry Garcia Band", 15, "acid rock", "jam bands");
if (item != null) {
library.addBandMembers(item, "Jerry Garcia", "Keith Godcheaux");
library.printItem(out, item);
}

Тогда вот первая функция, которая называется ..

public void addBandMembers(Item musicCD, String... members)
{

   //musicCD.addband(members);   // both cant find addband function..
    //Item.addband(members);

}

Затем в другом классе я пытаюсь добавить информацию ..

 private String members;  


public void addband(String... member)
{
    this.members = member;     // error

}

если я сделаю частных членов String; массив тогда эта функция ниже ошибок .. несовместимого типа ..

 public String getMembers()
{
 return members;   
}

Как я могу это сделать?

о, вот мой сет ..

public class Library
{
private Set<CD> theCDs = new HashSet<CD>();
private Set<DVD> theDVDs = new HashSet<DVD>();
private Set<Book> theBooks = new HashSet<Book>();

если вам нужно увидеть больше кода, дайте мне знать .. Большое вам спасибо ..

Ответы [ 3 ]

2 голосов
/ 18 февраля 2010

A аргумент varargs преобразуется в массив .

Итак, измени

private String members;  

до

private String[] members;  
1 голос
/ 18 февраля 2010

Элемент String ... дает вам массив, так что вы смотрите на элемент типа String [].

Думаю, как только вы это получите, вы как бы преодолеете горбвопроса.

1 голос
/ 18 февраля 2010

Измените ваш метод получения, чтобы он возвращал массив String вместо String.

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