在尝试通过JPA从数据库中检索表并将其填充到Table SWT小部件(org.eclipse.swt.widgets.Table
)中时,我在执行以下Java代码时遇到了强制转换错误:
EntityManager connection = DB.Connection().createEntityManager(); //the EntityManagerFactory
TypedQuery<Object[]> query = (TypedQuery<Object[]>) connection.createQuery("select t from Test t");
List<Object[]> tablelist = query.getResultList();
connection.close();
SWTtable.removeAll(); //clears all the elements in the table
for (Object[] row : tablelist) { //error on this line - java.lang.ClassCastException: {packagename}.Test cannot be cast to [Ljava.lang.Object;
final TableItem item = new TableItem(SWTtable, SWT.None);
item.setData(row[0]);
item.setText(0, row[1].toString());
}
如上所述,(Object[]行:tablelist){的这一行<code>返回了<code>java.lang.ClassCastException:{packagename}的错误。无法将测试转换为[Ljava.lang.Object;
似乎有一个错误转换tablelist
即List
如果这是一种糟糕的方法,并且您有其他建议,请详细说明。
注意:SQL 查询“从测试 t 中选择 t”只是测试代码。我将使用 parmeter 来指定我稍后需要哪些记录,因此这里将有多个表。
我解决了这样的错误:
"select t.id, t.first, t.second, t.last from Test t"
这一切都在SQL查询中。我必须定义属性,而不是像这样选择所有属性:
"select t from Test t"
看起来< code>tableList包含一个< code>Test对象列表,而不是一个对象数组列表。这就是为什么当你把它改成
for (Object row : tablelist)
代码有效。
试着改变
List<Object[]> tablelist = query.getResultList();
到
List<Test> tablelist = query.getResultList();
和改变
for (Object[] row : tablelist) {
...
}
到
for (Test row : tablelist) {
...
}
您必须更改< code>for-loop中的代码,以使用< code>Test对象,而不是< code>Object[]。不知道< code>Test对象包含什么,我很难告诉你如何完成。但是我认为< code>Test对象应该保存您试图从数组中检索的所有信息,因为这是您的信息返回的方式。
这将起作用,异常也会告诉您哪里出了问题。这里的测试是JPA类型,是您的类型转换第2行不正确。您的类型转换正在强制列表
javadoc 执行选择查询,并将查询结果作为类型化列表返回。
项。设置数据
和项。setText
应调用行
中的正确属性访问器
EntityManager connection = DB.Connection().createEntityManager(); //the EntityManagerFactory
TypedQuery<Test> query = (TypedQuery<Test>) connection.createQuery("select t from Test t");
List<Test> tablelist = query.getResultList();
connection.close();
SWTtable.removeAll(); //clears all the elements in the table
for (Test row : tablelist) { //error on this line - java.lang.ClassCastException {packagename}.Test cannot be cast to [Ljava.lang.Object;
final TableItem item = new TableItem(SWTtable, SWT.None);
item.setData(row.getSomeAttribute());
item.setText(0, row.getSomeOtherAttribute());
}
将循环转换为时遇到问题。 方法返回 我尝试过,但需要等待将转换为并且我无法添加它。 我正在尝试下载大约15个报告异步,以等待所有的已经下载,然后将它们合并成一个PDF。 注意:我使用的是框架4.8.3
我尝试将一个循环转换为一个循环在flutter中等待循环。我想要循环的元素是Firebase实时数据库中的快照。 我的函数如下所示: 我尝试了不同的方法,但是我没有让函数工作。 第一次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 第二次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 在所有的尝试中,我都得到了相同的错误。但是上述
本文向大家介绍PHP将变量强制转换为foreach循环中的对象类型,包括了PHP将变量强制转换为foreach循环中的对象类型的使用技巧和注意事项,需要的朋友参考一下 这取决于正在使用的IDE。例如,Netbeans和IntelliJ可以在评论中启用@var的使用- 这样,在遇到提示“->”之后,IDE会知道“ $variable”是ClassName的类。 另外,可以使用指定返回类型为Class
从Laravel的foreach循环获取错误消息: 我的foreach循环是: 我的控制器是:
我试了所有的办法,但都不起作用。应用程序一次又一次崩溃。拜托,救命。 这是用于Java和XML的应用程序代码。错误为 我的mainactivity.java代码如下所示 activity_main.xml的代码是
如下面的代码所示,我发现了一个关于下面一行的错误,因为转换不正确 请让我知道如何解决这个问题。 注: 代码: 公共类MainActivity扩展AppCompatActivity{ logcat: