import java.util.List;

public class RataRata {
    // Bound "extends Number" membuka akses ke method milik Number,
    // sekaligus membatasi T agar hanya angka yang sah masuk.
    static <T extends Number> double rataRata(List<T> data) {
        if (data.isEmpty()) {
            return 0.0;
        }
        double total = 0.0;
        for (T nilai : data) {
            total += nilai.doubleValue();   // sah karena T extends Number
        }
        return total / data.size();
    }

    public static void main(String[] args) {
        List<Integer> bulat = List.of(7, 8, 9);
        List<Double> pecahan = List.of(2.5, 3.5, 7.0);

        System.out.printf("Rata-rata bulat  : %.2f%n", rataRata(bulat));
        System.out.printf("Rata-rata pecahan: %.2f%n", rataRata(pecahan));
    }
}
