java - 尝试显示数据库数据时转换集合时出现问题

标签 java database loops casting

嘿,大家好,我正在做一个数据库管理器项目,但我无法显示从 JTable 上的数据库获取的所有数据。代码如下:

private Collection<Map<String, String>> allData;
private void refresh()
{
    while(tableModel.getRowCount() > 0)
    {
        tableModel.removeRow(0);
    }
    try
    {
allData = manager.get((String) DatabaseJList.getInstance().getSelectedObject()).getDataManager().getAllFieldsValues();
//This works fine, I have prove to print allData value and it is correct
Object[] rowToAdd = new Object[manager.get((String) DatabaseJList.getInstance().getSelectedObject()).getDataManager().getColumnNumber()];
//I create a Object[] with the number of colums size,works fine too
ArrayList<String> rowx = new ArrayList<String>();

for (Map<String, String> rowz: allData)
            {
                rowx = (ArrayList<String>) rowz.values();
                int i = 0;
                for (String str : rowx)
                {
                    rowToAdd[i] = str;
                }
            }
            tableModel.addRow(rowToAdd);
        }

我的想法是在开始时使用刷新方法加载所有表数据,并在插入、删除、修改后再次调用它来刷新数据,但我在这里收到此错误:

java.uti.HashMap$Values 无法转换为 java.util.ArrayList

据我所知,方法 .values() 返回一个 Collection,所以不知道问题出在哪里。

非常感谢大家的帮助。

最佳答案

为什么rowx需要为 ArrayList<String> 类型?你不能将其声明为 Collection<String>

关于java - 尝试显示数据库数据时转换集合时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536673/

相关文章:

jquery - 如何循环仅在其子节点中具有特定类的元素?

spring - 使用 Java 将 Outlook 电子邮件以 .MSG 格式存储到磁盘

java - 同一进程的多个实例的单独日志?

database - Microsoft Access 的 REST(或其他从 App Access 的方式)

android - 如何删除Android应用程序中的数据库

javascript - 如何使 setTimeout 函数连续循环?

java - CDI Bean 中的默认拦截器

java - 如何在 Android Studio 中添加/删除项目时计算总价

java - 实现用户登录,JDBC 交易问题

javascript - 将表结果迭代到具有相同类的不同 div