Сижу, чешу репу
Хочется, как всегда, странного
Есть у нас с одной стороны 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 ...
А если мне все это дело захочется расширить? Например, унаследоваться от этого класса и добавить для сериализации новые типы?
В общем, куда копать