Implementuję obecnie własną bibliotekę, pozwalającą na serializację obiektów w Javie ME.
Natrafiłem na spory problem, mianowicie przeprowadzam deserializację obiektów w następujący sposób:
//...
else if (type == ObjectOutputStream.T_SERIALIZED_OBJECT) {
String name = readString(); // pobierz string z nazwą klasy, np com.mystuff.Class1
Class c = Class.forName(name); // ładujemy klasę
Serializable so = (Serializable) (c.newInstance()); // tu błąd, nie można utworzyć instancji klasy
Object o = so.readObject(this);
return o;
}
Opisany wyżej sposób nie działa, ponieważ Java ME nie pozwala na ładowanie klas przez Class.forName()
( nie ma w niej dostępu do ClassLoader'a ). Poszukuję sposobu na ominięcie tej niedogodności - mechanizmu
który pozwoli mi załadować klasę, której nazwa jest znana i stworzyć jej instancję.