2010-07-13 70 views
2

关于该图像:link text访问对象[]值在Java中

我有一个对象,“rezultat”,其具有getter和setter。我想设置'cli'属性(rezultat.setCli(String .....)),并且作为字符串参数,它应该是m_objArray[0],所以'ADSL22675 ....'来自该映像。扩展m_objArray我需要为'rezultat'对象属性设置19个属性。但我不知道如何访问它们。

Array o = ocs.getArray(1); 
Object[] obj = (Object[])o.getArray(); 
rezultat = new ListOfMdfTab(); 
for (int i = 0; i < obj.length; i++) 
{ 
rezultat.setCli ((String)obj[0].<what>?); //i need here that m_objArray[0]. 
} 

“OCS”是OracleCallableStatament对象类型,所以我需要Array o = ocs.getArray(1);因为一个1个索引是它是一种期复合型的OUT参数。 请帮忙。 谢谢!

回答

1

STRUCT是一个实现了java.sql.Struct接口的oracle类。该界面提供getAttributes()方法。

这是值得一试的尝试调用此方法,并希望最好的,返回的数组等于内部m_objArray

在Java代码:

rezultat.setCli(((java.sql.Struct)obj[0]).getAttributes()[0].toString()); 
+0

工作过,谢谢! – Roger22 2010-07-13 13:47:32

+0

@Roger:你应该接受这个答案。另请参阅http://stackoverflow.com/faq – BalusC 2010-07-13 17:31:06

2

这条语句将返回一个字符串或将抛出一个clasCastException如果对象是不是字符串:

(String)obj[0] 

如果你不知道,如果它是一个字符串,你可以使用

obj[0].toString() 

OR

String.valueOf(obj[0]) 

这将更加优雅

处理空值
+0

从链接,图片OP'OBJ [0]'是'STRUCT'(无论该装置)。在它内部有一个Object [] m_objArray',它包含'String'。至少我是这样读的。 – polygenelubricants 2010-07-13 13:14:05

+0

我用obj [0] .toString()试过,它返回了oracle.sql.STRUCT。所以,类型。我需要m_objArray中的值,该节点包含19个元素,其值需要(请参阅该图像)。 – Roger22 2010-07-13 13:14:37

+0

是的,true:从图片OP链接,obj [0]是一个STRUCT(无论如何表示)。在它内部有一个Object [] m_objArray,它包含String。至少我是这样读的。以及如何访问m_objArray的值? – Roger22 2010-07-13 13:15:31