powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое создание класса для реализации интерфейса
8 сообщений из 8, страница 1 из 1
Динамическое создание класса для реализации интерфейса
    #37759805
krab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Необходимо в программе динамически создать класс, задав ему имя.
Имплементировать интерфейс.
Далее откомпилировать и запустить метод интерфейса.

Додумался использовать потоки для создания класса:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        File sourceFile   = new File("./src/com/javaFile/Hello.java");
            FileWriter writer = new FileWriter(sourceFile);

            writer.write(
                    "public class Hello{ \n" +
                    " public void doit() { \n" +
                    "   System.out.println(\"Hello world\") ;\n" +
                    " }\n" +
                    "}"
            );


К примеру так.

Мне это решение кажется не очень)
Возможно есть какие-то библиотеки что решают эту проблему? подскажите.

Заранее спасибо.
...
Рейтинг: 0 / 0
Динамическое создание класса для реализации интерфейса
    #37759840
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточните, пожалуйста, задачу. В текущей постановке звучит достаточно бредово.
Можно через Proxy, можно через байткод конструкторы типа bcel, asm
...
Рейтинг: 0 / 0
Динамическое создание класса для реализации интерфейса
    #37759867
krab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написать приложение, которое создает файл с исходным
кодом класса вида:

Код: java
1.
2.
3.
4.
5.
6.
class Имя implements Fields {
private String Поле1;
private String Поле2;
private String Поле3;
 ....
}


Создаваемый класс должен реализовывать следующий интерфейс
Код: java
1.
2.
3.
4.
interface Fields {
init(); 
print(); 
}



После этого исходный код класса должен быть скомпилирован, загружен
в контекст программы и выведен cписок всех значений полей класса с их
именами на консоль.
...
Рейтинг: 0 / 0
Динамическое создание класса для реализации интерфейса
    #37759901
krab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том что не хочется писать такую колбасу:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
            writer.write(
                    "import com.javaFile.Fields;" +
                    "public class "+name+" implements Fields{ \n" +
                    "private String "+field1+";\n"+
                    "private String "+field2+";\n"+
                    "private String "+field3+";\n"+
                    " public void init() { \n" +
                    "   this."+field1+"=\"initField1\";\n" +
                    "   this."+field2+"=\"initField2\";\n" +
                    "   this."+field3+"=\"initField3\";\n" +
                    " }\n" +
                    " public void print() { \n" +
                    "   System.out.println(\"Поле 1 - \"+field1) ;\n" +
                    "   System.out.println(\"Поле 2 - \"+field2) ;\n" +
                    "   System.out.println(\"Поле 3 - \"+field3) ;\n" +
                    " }\n" +
                    "}"
            );



Есть ли более простое решение проблемы?
...
Рейтинг: 0 / 0
Динамическое создание класса для реализации интерфейса
    #37759913
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krabЕсть ли более простое решение проблемы? это очень хорошее решение проблемы
асмы и бселы - лишнее в целом
...
Рейтинг: 0 / 0
Динамическое создание класса для реализации интерфейса
    #37759928
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.net это очень хорошее решение проблемы
Схера ли оно хорошее? Во-первых с кодогенерацией гемор. Во-вторых сам API такой что джуниор будет в ужасе.

grasoff.netасмы и бселы - лишнее в целом
ИМХО, ими намного проще. Особенно структуру класса сгенерить.
...
Рейтинг: 0 / 0
Динамическое создание класса для реализации интерфейса
    #37759952
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczСхера ли оно хорошее?например с того, что ты сам пишешь не треш в виде
Код: java
1.
2.
InstructionFactory f = ...
InvokeInstruction i = f.createInvoke(...)


а
Код: java
1.
for (int i = ...)


BlazkowiczВо-первых с кодогенерацией геморне знаю )
BlazkowiczAPI такой что джуниор будет в ужасеcom.sun...javac.Main всё ещё жив )
...
Рейтинг: 0 / 0
Динамическое создание класса для реализации интерфейса
    #37759975
krab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.

Вот генерация кода интересует...

Нет чего-то типа такого?:


Код: java
1.
2.
3.
4.
ClassCretor cc = new ClassCreator("public", "Name");
cc.setInterfaces({"Interface1", "Interface2"});
cc.setField("private", String.class, "nameField");
...


Ну и т.д...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое создание класса для реализации интерфейса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]