import java.util.*;
import java.util.function.*;
import java.io.*;
class Example {
public static void main
(String[] args
) { Comparator<String> nonSerializableComparator =
(Comparator<String>) (a, b) -> 0;
test("non-serializable method ref",
nonSerializableComparator::compare);
test("non-serializable lambda",
(a, b) -> nonSerializableComparator.compare(a, b));
Comparator<String> serializableComparator =
test("serializable method ref",
serializableComparator::compare);
test("serializable lambda",
(a, b) -> serializableComparator.compare(a, b));
}
try {
obj = serialize(obj);
System.
out.
printf("%s passed.%n", type
); System.
out.
printf("%s failed with %s%n", type, e.
getClass().
getName()); }
}
objsOut.writeObject(obj);
return objsIn.readObject();
}
static {
.setUncaughtExceptionHandler((t, e) ->
e.
printStackTrace(System.
out)); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLmZ1bmN0aW9uLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBFeGFtcGxlIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgIAlDb21wYXJhdG9yPFN0cmluZz4gbm9uU2VyaWFsaXphYmxlQ29tcGFyYXRvciA9CiAgICAJCShDb21wYXJhdG9yPFN0cmluZz4pIChhLCBiKSAtPiAwOwoJCXRlc3QoIm5vbi1zZXJpYWxpemFibGUgbWV0aG9kIHJlZiIsCgkJCShDb21wYXJhdG9yPFN0cmluZz4gJiBTZXJpYWxpemFibGUpCgkJCQlub25TZXJpYWxpemFibGVDb21wYXJhdG9yOjpjb21wYXJlKTsKCQl0ZXN0KCJub24tc2VyaWFsaXphYmxlIGxhbWJkYSIsCgkJCShDb21wYXJhdG9yPFN0cmluZz4gJiBTZXJpYWxpemFibGUpCgkJCQkoYSwgYikgLT4gbm9uU2VyaWFsaXphYmxlQ29tcGFyYXRvci5jb21wYXJlKGEsIGIpKTsKCQlDb21wYXJhdG9yPFN0cmluZz4gc2VyaWFsaXphYmxlQ29tcGFyYXRvciA9CgkJCShDb21wYXJhdG9yPFN0cmluZz4gJiBTZXJpYWxpemFibGUpIChhLCBiKSAtPiAwOwoJCXRlc3QoInNlcmlhbGl6YWJsZSBtZXRob2QgcmVmIiwKCQkJKENvbXBhcmF0b3I8U3RyaW5nPiAmIFNlcmlhbGl6YWJsZSkKCQkJCXNlcmlhbGl6YWJsZUNvbXBhcmF0b3I6OmNvbXBhcmUpOwoJCXRlc3QoInNlcmlhbGl6YWJsZSBsYW1iZGEiLAoJCQkoQ29tcGFyYXRvcjxTdHJpbmc+ICYgU2VyaWFsaXphYmxlKQoJCQkJKGEsIGIpIC0+IHNlcmlhbGl6YWJsZUNvbXBhcmF0b3IuY29tcGFyZShhLCBiKSk7CiAgICB9CiAgICAKICAgIHN0YXRpYyB2b2lkIHRlc3QoU3RyaW5nIHR5cGUsIE9iamVjdCBvYmopIHsKICAgIAl0cnkgewogICAgCQlvYmogPSBzZXJpYWxpemUob2JqKTsKICAgIAkJU3lzdGVtLm91dC5wcmludGYoIiVzIHBhc3NlZC4lbiIsIHR5cGUpOwogICAgCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAJCVN5c3RlbS5vdXQucHJpbnRmKCIlcyBmYWlsZWQgd2l0aCAlcyVuIiwgdHlwZSwgZS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CiAgICAJfQogICAgfQogICAgCiAgICBzdGF0aWMgT2JqZWN0IHNlcmlhbGl6ZShPYmplY3Qgb2JqKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnl0ZXNPdXQgPQogICAgICAgICAgICBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CiAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9ianNPdXQgPQogICAgICAgICAgICBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJ5dGVzT3V0KTsKICAgICAgICAKICAgICAgICBvYmpzT3V0LndyaXRlT2JqZWN0KG9iaik7CiAgICAgICAgCiAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYnl0ZXNJbiA9CiAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlc091dC50b0J5dGVBcnJheSgpKTsKICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvYmpzSW4gPQogICAgICAgICAgICBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYnl0ZXNJbik7CiAgICAgICAgCiAgICAgICAgcmV0dXJuIG9ianNJbi5yZWFkT2JqZWN0KCk7CiAgICB9CgogICAgc3RhdGljIHsKICAgICAgICBUaHJlYWQuY3VycmVudFRocmVhZCgpCiAgICAgICAgICAgIC5zZXRVbmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIoKHQsIGUpIC0+CiAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZShTeXN0ZW0ub3V0KSk7CiAgICB9Cn0=