Параметры передачи Java Reflection - PullRequest
0 голосов
/ 27 декабря 2010

HI,

У меня есть методы, для каждого из которых требуется целое число, строка соответственно. Я прочитал входные данные из моего файла XML. Я не буду знать, что это за тип входов. Я использую отражение, чтобы вызвать метод. Я читаю XML и сохраняю его как строку. Я вызываю метод, передавая параметр. Один из методов ожидает целое число, но я передаю в строке. Когда я пытаюсь выполнить getType и приведение типов, возникает исключение приведения классов.

Любая помощь будет оценена.

Спасибо, Priya.R

Ответы [ 2 ]

4 голосов
/ 27 декабря 2010

Java - строго типизированный язык.Вы не можете передать строку целочисленному ожидающему методу.Вы должны преобразовать строку в целое число, вы можете использовать Integer.parseInt () ..

0 голосов
/ 28 декабря 2010

Если все входные данные являются строками в XML-файле, тогда действительно ли нет разницы между XML-файлом и обычным текстовым файлом?

Основная проблема заключается в представлении типов данных: выне использовать XML, как это должно быть.XML-файлы должны представлять определенный тип данных, который имеет вход.Например, возраст человека должен быть представлен как int.Вы теряете семантику типов, когда кодируете все как строку.

Что касается фактического кода, используйте Java-классы XMLEncoder и XMLDecoder, расположенные здесь и здесь соответственно.

По сути, вы будете делать что-то вроде:

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

Кодирование (иначе: сохранение данных в XML-файле) - записать первый ввод как целочисленный тип (encoder.writeInt(someIntValue)) - записать второй вход в виде строки: encoder.writeString(someStrValue) - и т. Д.

При декодировании сначала декодируется целое число, затем строка и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...