Сериализация/Конвертация в другие объекты
От: Mamut Швеция http://dmitriid.com
Дата: 20.08.10 17:03
Оценка:
Сижу, чешу репу Хочется, как всегда, странного

Есть у нас с одной стороны Java, с другой стороны Erlang (и его библиотеки для инетрфейса с Java'ой).

Со стороны Java String, со стороны Erlang'а — OtpErlangString.
Со стороны Java Integer, со стороны Erlang'а — OtpErlangInt.
ну и т.п.

То есть для передачи чего-то там в Erlang нужно делать что-то типа:
String s = "text";
OtpeErlangString s1 = new OtpErlangString(s);
// куда-то там передаем


На простейших объектах и когда оно делается ручками, оно все понятно. Но хочется слегка автоматизировать процесс То есть если у нас есть

ArrayList arr = new ArrayList();
arr.add("aaa");
arr.add(123);

ArrayList arr2 = new ArrayList();
arr2.add(new ArrayList());

arr.add(arr);


то хочется магического:

ErlangObject eo = new ErlangObject(arr); // из примера выше

eo.get(); // Получем OtpErlangObject, соедржащий OtpErlangList,
          // в котором есть OtpErlangString, OtpErlangInt
          // еще один OtpErlangList и т.п.



неужели нет ничего более удобного чем
if(object instanceof Boolean){
    return OtpErlangBoolean((Boolean)object);
} else if(object instanceof String){
    return OtpErlangString((String)object);
} else if(object instanceof Integer){
    return OtpErlangInt((Integer)object);
} else ...


А если мне все это дело захочется расширить? Например, унаследоваться от этого класса и добавить для сериализации новые типы?

В общем, куда копать


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.