Как я могу прочитать Имя класса и объектов из Файла, используя Отражение Java? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть файл с именем Objects.dat, и я хочу прочитать имя класса и имя объекта из этого файла с помощью Java Reflection. Я могу читать из другого класса Java, но не из файла. Как я могу решить это?

Java класс

public class EmployeeInfo {
    private String username = "John";
    private int userage = 23;
}

Objects.dat содержит тот же текст, что и класс Java.

Читатель класса

public class FileRd {
    public static void main(String[] args)  {
            try {
                Class cls = Class.forName("EmployeeInfo");
                Object obj = cls.newInstance();

                System.out.println("Class Name-->"+obj.getClass());
                Field[] fields = cls.getDeclaredFields();
                for( int i = 0 ; i < fields.length ; i++ ) {
                    fields[i].setAccessible(true);
                    System.out.println("Name-->"+fields[i].getName());
                }
            }
            catch( Exception e ) { e.printStackTrace(); }
    }
}

Приведенный выше код работает для класса Java, но я хочу ввести файл как и читать -

FileInputStream fin = new FileInputStream("D:\\Objects.bat");

и выполнить вышеперечисленное функционально, но я не смог этого сделать.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Для этого вам понадобится пользовательский загрузчик классов, если файл уже скомпилирован (если нет, вы можете использовать инструмент javac для компиляции с помощью classpath или инструмент байт-кода, такой как ASM или Javassist).

Затем вы используете ClassLoader для загрузки файла (.class) и findClass.

0 голосов
/ 26 апреля 2018

Возможно, сериализация / десериализация является лучшим способом, чем сохранение кода Java в файле.

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