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);
}
→ Ссылка