record Point(int x, int y) {} Point p1 = new Point(1, 2); Point p2 = new Point(1, 2); System.out.println(p1.equals(p2)); // true System.out.println(p1 == p2); // false +BWBͷܕͷجຊ
*OUFHFSͷϦετ w தͷܕ·ͰίϯύΠϥ͕ݕࠪ͢Δ List<String> names = new ArrayList<>(); names.add("Alice"); // OK names.add(123); // ίϯύΠϧΤϥʔ String name = names.get(0); ΫϥεɾΠϯλʔϑΣʔεɾଟ૬ܕɾ૯শܕ
name) {} record IsFish(String name) {} record CanSwim(String name) {} Function<IsSalmon, IsFish> salmonIsFish = s -> new IsFish(s.name()); Function<IsFish, CanSwim> fishCanSwim = f -> new CanSwim(f.name()); ܕূ໌Ͱ͋Δ
͔͠͠C࣮ߦ࣌ʹʹͳΔ w ܕΛ͢ΔͱɺอূͰ͖ΔൣғΛ͛ΒΕΔ record NonZeroInt(int value) { public NonZeroInt { if (value == 0) { throw new IllegalArgumentException("zero"); } } } int divide(int a, NonZeroInt b) { return a / b.value(); } divide(10, 0); // ίϯύΠϧΤϥʔ ܕূ໌Ͱ͋Δ