Ребят как инты при вводе состыковываються с интами в статик классе? это же новые инты? нет?(знаю что стрик выше( и понял намек что надо инт)) я думал что надо так:
Cat.age = Integer.parseInt(reader.readLine());
Cat.weight = Integer.parseInt(reader.readLine());
Cat.tailLengthge = Integer.parseInt(reader.readLine());
но не выходит =/
public class Solution {
    public final static ArrayList<Cat> CATS = new ArrayList<>();

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        while (true) {
            String name = reader.readLine();

            if (name == null || name.isEmpty()) {
                break;
            }
           int age = Integer.parseInt(reader.readLine());
           int weight = Integer.parseInt(reader.readLine());
           int tailLengthge = Integer.parseInt(reader.readLine());

            Cat cat = new Cat(name, age, weight, tailLengthge);
            CATS.add(cat);
        }

        printList();
    }

    public static void printList() {
        for (int i = 0; i < CATS.size(); i++) {
            System.out.println(CATS.get(i));
        }
    }

    public static class Cat {
        private String name;
        private int age;
        private int weight;
        private int tailLength;

        Cat(String name, int age, int weight, int tailLength) {
            this.name = name;
            this.age = age;
            this.weight = weight;
            this.tailLength = tailLength;
        }

        @Override
        public String toString() {
            return "Cat's name: " + name + ", age: " + age + ", weight: " + weight + ", tail: " + tailLength;
        }
    }
}