Java Reflection传递参数

时间:2010-12-27 07:22:03

标签: java reflection

HI,

我有方法,每个方法分别需要整数,字符串。我从xml文件中读取输入。我不知道它将是什么类型的输入。我正在使用反射来调用该方法。我读了xml并将其存储为字符串。我通过传入参数来调用该方法。其中一个方法需要一个整数,但我传入字符串。当我尝试执行getType和强制转换时,它会抛出类强制转换异常。

Anyhelp将不胜感激。

谢谢, Priya.R

2 个答案:

答案 0 :(得分:4)

Java是强类型语言。您不能将字符串传递给整数期望方法。你应该将字符串转换为整数,你可以使用Integer.parseInt()..

答案 1 :(得分:0)

如果所有输入都是XML文件中的字符串,那么XML文件和普通文本文件之间确实没有区别,是吗?

主要问题是数据类型的表示:您没有使用XML。 XML文件应表示输入具有的特定数据类型。例如,一个人的年龄应该表示为int。当您将所有内容编码为String时,会丢失类型语义。

对于实际代码,请分别使用位于herehereXMLEncoderXMLDecoder java类。

基本上,你会做类似的事情:

XMLEncoder encoder = new XMLEncoder();
XMLDecoder decoder = new XMLDecoder();

编码(又名:将数据存储到XML文件)   - 将第一个输入写为整数类型(encoder.writeInt(someIntValue))   - 将第二个输入写为字符串:encoder.writeString(someStrValue)   - 等等

解码时,首先解码整数,然后解码字符串等