【问题标题】:Observable List可观察列表
【发布时间】:2018-07-09 21:01:15
【问题描述】:

当试图声明一个新的ObservableList时:

ObservableList<Account> userAccounts = new FXCollections.observableArrayList();

我在observableArrayList(); 收到一条错误消息:

找不到符号,符号:类observableArrayList,位置:类FXCollections

这是我的导入语句

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

这是我的方法

public ObservableList<Account> getUsersAccounts(int memberID) { 
    ObservableList<Account> userAccounts = new FXCollections.observableArrayList();

    try {     
        Statement stmt = conn.createStatement();            
        String sql = "SELECT * FROM account WHERE member_id='" + memberID + "'";            
        ResultSet rs = stmt.executeQuery(sql);

        while(rs.next()) {
            Account account = new Account(rs.getInt("member_id"), rs.getString("account_type"), rs.getDouble("balance"));
            userAccounts.add(account);
        }
    } catch (SQLException ex) {
        Logger.getLogger(JDBCManager.class.getName()).log(Level.SEVERE, null, ex);
    }

    return userAccounts;
}

我错过了什么,为什么我不能声明一个新的ObservableList

【问题讨论】:

  • 摆脱new
  • observableArrayList() 是静态方法,而不是类。
  • 这行得通,但为什么呢?如果我想创建一个数组列表,例如 ArrayList test = new ArrayList();,我需要 new
  • 静态方法不需要使用new,因此请使用:ObservableList&lt;Account&gt; userAccounts = FXCollections.observableArrayList();
  • 调用构造函数时使用new关键字。

标签: java javafx constructor observablelist


【解决方案1】:

改变

ObservableList<Account> userAccounts = new FXCollections.observableArrayList();

ObservableList<Account> userAccounts = FXCollections.observableArrayList();

【讨论】:

    【解决方案2】:

    可以使用构造函数直接创建实例,也可以通过调用可以调用此构造函数的方法隐式创建实例。

    在您的情况下,它是一种静态方法。看看这些技术:

    List<String> a = new ArrayList<>();
    List<String> b = Lists.createList();
    
    class Lists {
        public static <T> List<T> createList() {
            return new ArrayList<>();
        }
    }
    

    【讨论】:

    • 我喜欢这个答案。这个答案解决了OP不理解的事情。
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多