我有一个谷歌我的问题,虽然我可以找到许多相同标题的问题,我似乎找不到适合我的例子的决议。
Library.java
public class Library {
public ArrayList<Book> books = new ArrayList<Book>();
public Library(){
super();
}
//Getters/Setters
public Library(ArrayList<Book> books) {
this.books = books;
}
public ArrayList<Book> getBooks() {
return books;
}
public void setBooks(ArrayList<Book> books) {
this.books = books;
}
LibraryTester.java
import java.util.ArrayList;
import java.util.Scanner;
public class LibraryTester {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Book> books = Library.getBooks(); //Getting error here
books = Library.CreateBooksArrayList();
MenuInput(sc, books);
sc.close();
Library.setBooks(books); //And here
}
将getter / setter更改为静态似乎不起作用,我是一个绝对的java noob所以它可能是一些愚蠢的错误,任何人都有任何线索如何访问&#39;库中的getter / setter方法&#39 ;来自&#39;库测试人员的课程&#39;类。在此先感谢您的任何帮助
答案 0 :(得分:2)
getBooks()不是Library类的静态方法。您需要创建库的实例,然后调用实例的方法。 (当您查询图书列表然后调用setBooks将其设置为您读取的值时,也不确定您使用main方法尝试完成的内容...)。还会提出关于阅读一两个好教程的建议。
import java.util.ArrayList;
import java.util.Scanner;
public class LibraryTester {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Library lib = new Library();
ArrayList<Book> books = lib.getBooks();
MenuInput(sc, books);
sc.close();
}
答案 1 :(得分:1)
看起来你正在尝试测试你的代码(好主意),但是你正在使用错误的工具。不要将测试用例包装在应用程序中 - 而是使用jUnit来执行和断言您的类行为。这可能很有用。