简短的问题。希望它能很快得到答复。假设我有一个这样的单例:
package main.library;
public enum LibrarySingleton {
INSTANCE(new String[][]{});
final String[][] bookStore;
private LibrarySingleton(String[][] bookStore){
this.bookStore = bookStore;
}
}
和一个包含 3 个变量的 Book 类:
package main.library;
public class Book{
String author;
String title;
int pages;
@Override public String toString(){
return ("|" + author + "|" + title + "|" + pages + "|");
}
public Book(){
System.out.println("Error: No book information specified");
}
public Book(String author, String title, int pages){
this.author = author;
this.title = title;
this.pages = pages;
}
public String getAuthor(){
return author;
}
public String getTitle(){
return title;
}
public int getPages(){
return pages;
}
}
我正在研究如何将该单例用作存放书籍的数组。我如何访问书籍,将它们放入数组(单例)或从数组中删除它们(单例)?如果单例应该以不同的方式编写,请纠正我,并解释为什么它是错误的,因为我对 Java 还不是那么“高级”。
真的希望你们能就此回答我。请只是问题。
最佳答案
如果你想要单例,你可以使用下面的方法:
public class Library {
private static final Library instance = new Library();
private List<Book> books = new ArrayList<Book>();
public static Library getInstance() {
return instance ;
}
public void add(Book book) {
books.add(book);
}
}
当然,如果你的程序有多个线程,就加上同步。如果您的程序运行在发生复杂类加载的 J2EE 环境中,则您需要不同的模式。
关于Java、单例元素修改、软件模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219036/