Вызов массива из другого метода класса в main - PullRequest
0 голосов
/ 27 декабря 2018

Чтобы сохранить код в основном пространстве, я написал некоторый любительский код в другом методе класса, который я хочу внедрить в свой метод main.Тем не менее, я получаю сообщение об ошибке всякий раз, когда я пытаюсь вызвать метод после создания объекта для этого класса.Не могли бы вы просветить меня и сказать, что я делаю неправильно?

Это код, который я написал в классе массива.

public ListBook() {
    String[]bookList= new String[11];
    bookList[0]="Necromonicon";
    bookList[1]="The Hobbit";
    bookList[2]="Hannibal";
    bookList[3]="Cooking an egg";
    bookList[4]="The Hulk smashes again";
    bookList[5]="The Tyranny of a king";
    bookList[6]="The Phantom Menace";
    bookList[7]="Rogue One: A Starwars Story";
    bookList[8]="The Mighty Hercules";
    bookList[9]="The Serpents Gaze";
    bookList[10]="The End of the World";    
    }


public void printList(String bookList[]) {
    for(String x:bookList) {
    System.out.println(x);
}

И это код изосновной:

public static void main(String[] args) {
    ListBook r = new ListBook();
    r.printList();
}

Сообщение об ошибке:

The method printList(String[]) in the type ListBook is not applicable for the arguments()

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Если класс ListBook имеет массив String, он должен быть атрибутом, тогда, когда вы вызовете printList(), вы прочитаете этот массив.Поскольку проблема сейчас заключается в том, что массив связан с экземпляром и не должен передаваться как параметр

public class ListBook {

    private static String[] defaultBooks = {"Necromonicon", "The Hobbit", "Hannibal", "Cooking an egg", "The Hulk smashes again", "The Tyranny of a king",
            "The Phantom Menace", "Rogue One: A Starwars Story", "The Mighty Hercules", "The Serpents Gaze", "The End of the World"};

    private String[] bookList;

    public ListBook() {
        this(defaultBooks);
    }

    public ListBook(String[] books) {
        bookList = books;
    }

    public void printList() {
        for (String x : bookList) {
            System.out.println(x);
        }
    }
}

, а использоваться как

public static void main(String[] args) {
    ListBook r = new ListBook();
    r.printList();
    // OR
    ListBook r2 = new ListBook(new String[]{"Book 1", "Book 2", "Book 3"});
    r2.printList();
}
0 голосов
/ 27 декабря 2018

Вы не передаете ни одного аргумента вызову вашего метода.Измените свой метод на этот, если вы хотите использовать список в вашем классе

public void printList() {
    for(String x:bookList) {
    System.out.println(x);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...