diff --git a/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/freeze/Person.java b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/freeze/Person.java new file mode 100644 index 00000000..49b88b3e --- /dev/null +++ b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/freeze/Person.java @@ -0,0 +1,23 @@ +package com.example.effectivejava.chapter01.item02.freeze; + +import java.util.ArrayList; +import java.util.List; + +public class Person { + + private final String name; + + private final int birthYear; + + private final List kids; + + public Person(String name, int birthYear) { + this.name = name; + this.birthYear = birthYear; + this.kids = new ArrayList<>(); + } + + public static void main(String[] args) { + + } +} \ No newline at end of file diff --git a/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/hierarchicalbuilder/NyPizza.java b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/hierarchicalbuilder/NyPizza.java index 94268df2..55cc6706 100644 --- a/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/hierarchicalbuilder/NyPizza.java +++ b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/hierarchicalbuilder/NyPizza.java @@ -1,5 +1,7 @@ package com.example.effectivejava.chapter01.item02.hierarchicalbuilder; +import java.util.Objects; + // 코드 2-5 뉴욕 피자 - 계층적 빌더를 활용한 하위 클래스 (20쪽) public class NyPizza extends Pizza { public enum Size { SMALL, MEDIUM, LARGE } diff --git a/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/illegalargumentexception/Order.java b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/illegalargumentexception/Order.java new file mode 100644 index 00000000..c0be65ad --- /dev/null +++ b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/illegalargumentexception/Order.java @@ -0,0 +1,19 @@ +package com.example.effectivejava.chapter01.item02.illegalargumentexception; + +import java.time.LocalDate; + +public class Order { + + public void updateDeliveryDate(LocalDate deliveryDate) { + if (deliveryDate == null) { + throw new NullPointerException("deliveryDate can't be null"); + } + + if (deliveryDate.isBefore(LocalDate.now())) { + throw new IllegalArgumentException("deliveryDate can't be earlier than " + LocalDate.now()); + } + + // 배송 날짜 업데이트 + } + +} \ No newline at end of file diff --git a/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/varargs/VarargsSamples.java b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/varargs/VarargsSamples.java new file mode 100644 index 00000000..ef00b1e6 --- /dev/null +++ b/effective-java/src/main/java/com/example/effectivejava/chapter01/item02/varargs/VarargsSamples.java @@ -0,0 +1,17 @@ +package com.example.effectivejava.chapter01.item02.varargs; + +import java.util.Arrays; + +public class VarargsSamples { + + public void printNumbers(int... numbers) { + System.out.println(numbers.getClass().getCanonicalName()); + System.out.println(numbers.getClass().getComponentType()); + Arrays.stream(numbers).forEach(System.out::println); + } + + public static void main(String[] args) { + VarargsSamples samples = new VarargsSamples(); + samples.printNumbers(1, 20, 20, 39, 59); + } +} \ No newline at end of file