@SuppressWarnings("unchecked") public static <X> X setNestedValue(BaseModel model, List<String> paths, Object value) { int index = paths.size() - 1; String path = paths.get(index); paths.remove(index); BaseModel m = getNestedValue(model, paths); m.set(path, value); return (X) m.get(path); }