2

简短的问题。希望它能很快得到答复。假设我有一个像这样的单身人士:

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 还没有那么“高级”。

真的希望你们能回答我这个问题。请只问问题。

4

2 回答 2

1

如果你想要单例,你可以使用以下方法:

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 环境中运行,在该环境中会发生复杂的类加载,那么您需要一种不同的模式。

于 2013-08-13T21:07:16.130 回答
0

如果您初始化一个空数组并使其成为最终数组,它将保持为空并且您无法重新初始化它。我想你需要的是一个数组列表(一般是列表)。您可以对其进行初始化并向其添加元素。

于 2013-08-13T21:08:34.127 回答