我有关于转换和转换的问题,
消息列表是 Object 类,列表的每个元素都是不同类型的数组,所以我需要一种方法来帮助我转换每个元素对象组件到数组。
这是我的代码部分。
String query = "SELECT m.MSG_CODE, m.MSG_TYPE, m.MSG_TITLE, m.MSG_CORE, me.IS_READ "
+ "FROM EBANKING.EBAN_MESSAGING m, EBANKING.EBAN_MESSAGING_ENDUSER me WHERE me.END_USER_CODE = "
+ userCode + " AND me.MSG_CODE = m.MSG_CODE";
List<Object> messages = ebankingPersistenceService.getResultNativeQuery(query);
List<EbanMessagingDto> notifications = new ArrayList<EbanMessagingDto>();
for (Object e : messages.toArray()) {
System.out.println(Array.getLength(e)+" ---------------- IS THE LENGTH");
System.out.println(Array.getLong(e, 0)+" ---------------- IS THE FIRST ELEMENT");
}
最后一行总是导致 IllegalArgumentException:参数不是数组但它在前一行显示长度为5。
任何帮助都将得到无限的赞赏。
提前致谢。
见人, e 是一个数组。我不知道发生了什么。
答案 0 :(得分:3)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cauta Elev</title>
</head>
<body>
<form method="post">
<input type="text" name="cauta" placeholder="Cauta Elevul"/>
<input type="submit" value="Cauta"/>
</form>
<?php print("$output"); ?>
</body>
</html>
将为您提供messages.toArray()
,并使用您的循环遍历Object[]
数组并使用单个对象即Object[]
,之后您将传递单个对象到e
和Array.getLength(e)
。
更新:如果给定索引处的值无法转换为返回类型,即Array.getLong(e, 0)
,则抛出异常,在这种情况下,long
可以' t被转换为BidDecimal
因此例外,
作为替代方案,您可以使用long
和get
return
方法
答案 1 :(得分:3)
如果您希望将“ e ”对象转换为表格:
{{1}}
希望得到这个帮助。
答案 2 :(得分:0)
实际上这个错误意味着“参数不是数字数字”。即如果您传递String [],例如:
String[] test = {"123", "124"};
Array.getLong(test, 0);
所以,如果getLenght(x)返回5,但是getLong(x,0)失败,则x是数组,但x [0]不能转换为long
答案 3 :(得分:-2)
Array.getLong(e, 0)
这里期待e成为一个数组,但是你正在传递一个对象..请先转换它然后再使用它......
另一个SO link,我发现它很有用..它与你的问题不同,但类似的东西......它可能会帮助你并获得更多的知识