Java 如何将对象添加到可观察数组支持列表中?

Java 如何将对象添加到可观察数组支持列表中?,java,arrays,arraylist,collections,javafx,Java,Arrays,Arraylist,Collections,Javafx,所以我有一个叫做mailbox的类,它是一个消息集合 在“服务器”类中创建的消息示例: 邮箱类别: public class Mailbox { public String name; ObservableList<String> messagelist = FXCollections.observableArrayList(); ListView<String> list = new ListView<String>(message

所以我有一个叫做mailbox的类,它是一个消息集合

在“服务器”类中创建的消息示例:

邮箱类别:

public class Mailbox {

    public String name;
    ObservableList<String> messagelist = FXCollections.observableArrayList();
    ListView<String> list = new ListView<String>(messagelist);

    public Mailbox (String name) {
        this.name = name;
    }

    public int addMessage(Message message) {
      messagelist.add(message);
    }
公共类邮箱{
公共字符串名称;
ObservableList messagelist=FXCollections.observableArrayList();
ListView列表=新建ListView(messagelist);
公用邮箱(字符串名称){
this.name=名称;
}
公共int addMessage(消息消息){
messagelist.add(消息);
}
我不确定我在做什么,但我的想法是我有邮箱对象,比如“收件箱”,用于在javafx应用程序上显示电子邮件对象。然后我需要从“收件箱”邮箱中删除邮件,并将其移动到“垃圾”邮箱

基本上,我不知道如何创建此备份数组。我应该在邮箱类中扩展集合吗?我不确定如何格式化此邮箱类,以便可以从javafx应用程序中添加/删除邮件。我的javafx应用程序只是邮箱列表(收件箱、重要邮件、垃圾),位于选定邮箱的邮件列表旁边,位于选定邮件的显示旁边

需要将邮箱作为对象的集合。不知道如何操作。

解决方案

  • 您不需要用例的支持列表(调用已经为您创建了一个列表)
  • 您需要适当地设置列表的类型(
    ,而不是
示例代码

如果您认为外部对象可以直接修改邮件列表,而无需与邮箱方法进一步交互,则可以编写:

return messages;
mailbox.messages().add(new Message());
如果是这种情况,那么您可能根本不需要
addMessage
方法调用,因为类的用户可以编写:

return messages;
mailbox.messages().add(new Message());

这里的内容有什么问题?看起来是正确的想法。找不到适用于添加(消息)的方法,方法集合。添加(字符串)不适用,参数不匹配消息无法转换为字符串。我不理解FXCollections.UnmodifiableObsableList(消息);在消息()中方法,这应该有效吗?你不明白哪一行?不可修改的OBS东西,这个方法有效吗?我缺少导入了吗?这到底是怎么回事。我添加了一个实现说明来解释
unmodifibleObservableList
的用法。
mailbox.messages().add(new Message());