Как использовать сериализуемые и лямбда -выражения вместеJAVA

Программисты JAVA общаются здесь
Anonymous
Как использовать сериализуемые и лямбда -выражения вместе

Сообщение Anonymous »

Мне нужно сохранить объект в файле, а затем получить его позже. Сам объект реализует интерфейс serializable , но одна из его полей содержит выражения лямбда. По -видимому, это считается поле, которое не реализует интерфейс Serializable , и я получаю java.io.noterializableException .
Я не хочу резко менять свой код, но я не знаю, что делать в такой ситуации. У кого -то есть предложение?

Код: Выделить всё

public class SerObject implements Serializable {

/**
*
*/
private static final long serialVersionUID = -2691834780794406081L;

public SerField field;

public SerObject(SerField field) {
this.field = field;
}

public String stringRepresentation() {
return this.field.name() + "\t" + field.lambda.apply(field);
}

static final String pathname = "D:\\JavaData\\file.obj";

public static void main(String[] args) {
SerObject obj = new SerObject(new SerField("Field", (field) -> "Class is " + field.getClass().getName()  ));

SerializableUtilities.saveObject(new File(pathname), obj);

SerObject loadedObj = SerializableUtilities.loadObject(new File(pathname));
System.out.println(loadedObj.stringRepresentation());
}
}

public class SerField implements Serializable {

/**
*
*/
private static final long serialVersionUID = -5058433150929459799L;

protected String name;

protected Function lambda;

public SerField(String name, Function lambda) {
this.name = name;
this.lambda = lambda;
}

public abstract String name() {
return this.name;
}
}

Подробнее здесь: https://stackoverflow.com/questions/644 ... s-together

Вернуться в «JAVA»