public static <T, C extends Class<T>> T readSerializableObjectFromFile(final Path path, final C clazz) {
Objects.requireNonNull(path, "path");
Objects.requireNonNull(clazz, "clazz");
try (ObjectInputStream objectInputStream = new ObjectInputStream(Files.newInputStream(path))) {
return clazz.cast(objectInputStream.readObject());
} catch (IOException ex) {
throw new UncheckedIOException(ex);
} catch (ClassNotFoundException ex) {
throw new RuntimeException(ex);