我正试图从数据库中获取一个值。
我的数据库查询:
String GroupID1="select idCompanies from companies where Company_Name='ACME';";
这里我正在调用一个javabeans,它返回一个带有一个元素的ArrayLIst
ArrayList<?> IdGroup1=oper.getList(GroupID1);
然后,我打印结果:
System.out.println(IdGroup1);
查询工作正常,但我得到了结果:
[javabeans.ListOneElement@609f6e68]
而不是真正的价值。如何将java对象转换为实际值?
答案 0 :(得分:1)
您正在打印ArrayList
对象IdGroup1
,您需要迭代才能获得对象
答案 1 :(得分:1)
此代码将从列表中检索第一个(也是唯一的)项目:
System.out.println(IdGroup1.get(0).toString());
添加以下内容将阻止nullPointerException:
if (!IdGroup1.isEmpty())
System.out.println(IdGroup1.get(0).toString());
- 已添加.toString()
以获取对象的值
答案 2 :(得分:0)
考虑将返回什么类型的对象oper.getList(GroupID1)
。
您需要适应任何对象,然后将其转换为String。
你需要:
解压缩列表(这是一个列表包含,并且java期望可能包含多个对象,所以如果你有一个,它不会自动'解包'它1个对象的列表)
提取你的字符串。在这里,java可能会巧妙地将数字(int,float等)转换为字符串。
对于第二部分,通过查找处理数据库查询的任何包的JavaDocs来查看对象的期望。然后看看如何提取你的字符串。
可能就像System.out.println(IdGroup1.get(0).toString());
一样简单
其中get(0)
从列表中解包对象,toString()
提取字符串。
如果你仍然回来javabeans.ListOneElement@41ccdc4d
尝试其他方法来提取你的字符串.... toValue()
或许?这取决于您正在使用的包裹。