can not be converted to List
class Region(Long id, String name)
public static void reWriteFile(String textFile, List<Region> region){
try(BufferedWriter writer = new BufferedWriter(
new FileWriter(textFile, false)))
{
for (Region reg : region){
writer.write(reg.toString());
writer.newLine();
}
}catch (IOException e){
System.out.println("Ошибка записи в файл: " + e);
}
}
Написал метод, который берет на вход объекты Region, каждый объект Region переводит в строку и записывает в файл построчно. Но тут прилетело дополнение к задаче:
class Post(Long id, String name, Long created, Long updated)
Нужно изменить метод, чтобы он мог принимать любой объект, переводить поля в стринг и так же построчно записывать. Я изменил в методе входящий параметр с List<Region> region на List <Object> object, ну и соответственно в теле метода, но компилятор ругается, что он не может конвертировать Region в Object, я понимаю, что это неправильно, нужно сделать приведение типов, но не знаю, как сделать
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Как вариант, можно сделать метод reWriteFile параметризованным:
public static <T> void reWriteFile(String textFile, List<T> objects) {
try(BufferedWriter writer = new BufferedWriter(
new FileWriter(textFile, false)))
{
for (T obj : objects) {
writer.write(obj.toString());
writer.newLine();
}
} catch (IOException e) {
System.out.println("Ошибка записи в файл: " + e);
}
}
// Пример использования
public static void main(String[] args) {
List<Region> regions = new ArrayList<>();
regions.add(new Region(1L, "region"));
reWriteFile("regions.txt", regions);
List<Post> posts = new ArrayList<>();
posts.add(new Post(1L, "post", 1L, 1L));
reWriteFile("posts.txt", posts);
List<Object> objects = new ArrayList<>();
objects.addAll(regions);
objects.addAll(posts);
reWriteFile("objects.txt", objects);
}