Есть клиент и сервер подключенные по сокету. Необходимо сделать чтобы сервер мог отправлять клиенту данные и список действий над ними без перекомпиляции кода клиента. Как это можно реализовать средствами Java или подскажите что я делаю не правильно?
Сделал объект который посылаю:
public class Action<T extends Serializable> implements Serializable {
private List<T> data;
private List<Operation> operations = new ArrayList<>();
...
}
где пример Operation это :
public class MapOperation implements Operation, Serializable {
SAM s2;
public MapOperation(Object obj) {
s2 = (SAM & Serializable) obj;
}
...
public interface SAM {
Object action(Object s);
}
}
Создается данный объект довольно громоздко
Action action = ActionUtil.fromTextFile("...")
.add(new MapOperation(
(MapOperation.SAM & Serializable) s1 -> someFunc(s1))
.add(new MapOperation((MapOperation.SAM & Serializable) s1 -> ((Integer) s1) * 2))
.collect();
Но при изменении данного кода на сервере, клиент либо делает тоже самое либо возвращает ошибку InvalidClassException Incompatible class (SUID) Ошибка возвращается когда меняется число операций.
Так же прошу заметить, в моем случае использование классов наследуемых от Function для создания своих лямбд и последующей сериализации, к сожалению, невозможно.
Есть параметризованный класс (дженерик), в нём есть поле-массивНужно в конструкторе с параметром "длина массива" создать массив
Здравствуйте! У меня есть ссылка картинки и ее нужно отобразить в ImageViewНо она не отображается