0

У меня проблема с JCodeModel (SUN). Моя программа работает каждый день, и я хочу, чтобы добавить некоторые функции классам, которые были созданы до текущего запуска.Сохранить объект Jcodemodel после выхода

JcodeModel поддерживает это? Если нет, есть возможность сохранить объект JCodemodel во внешнем файле, загрузить предыдущий JcodeModel и затем добавить новые функции?

Спасибо.

+0

Ваша программа создания оригинальных классов, которые вы хотите добавить функции через JCodeModel? –

+0

@johncarl: Да. –

+0

Какая ваша программа изначально генерируется? IE: читает ли ваша программа в модели или дескрипторе, которая направляет ее в том, как сгенерировать код? –

ответ

0

Вы можете сохранить экземпляр в файл с помощью ObjectOutputStream, а затем прочитать и установить его с помощью ObjectInputStream. Пока вы контролируете систему и можете гарантировать, что версия не изменится в одночасье, это должно быть безопасным (хотя и необычным).

This tutorial демонстрирует, как использовать его:

import java.io.*; 
public class ObjectOutputStreamDemo { 
    public static void main(String[] args) { 
    String s = "Hello world!"; 
    int i = 897648764; 
    try { 

     // create a new file with an ObjectOutputStream 
     FileOutputStream out = new FileOutputStream("test.txt"); 
     ObjectOutputStream oout = new ObjectOutputStream(out); 

     // write something in the file 
     oout.writeObject(s); 
     oout.writeObject(i); 

     // close the stream 
     oout.close(); 

     // create an ObjectInputStream for the file we created before 
     ObjectInputStream ois = 
      new ObjectInputStream(new FileInputStream("test.txt")); 

     // read and print what we wrote before 
     System.out.println("" + (String) ois.readObject()); 
     System.out.println("" + ois.readObject()); 

    } catch (Exception ex) { 
    ex.printStackTrace(); 
    } 
} 
} 
+0

У меня есть исключение: java.io.NotSerializableException: com.sun.codemodel.JCodeModel –

+0

.... JCodeModel не Serializable ... это плохо, тогда это не будет работать ... извините! –

Смежные вопросы