[Java] if문이 너무 많다면, 리팩토링을 해보자.
·
Programming Language/Java
너무 많은 if, else 는 읽기 어려운 코드가 된다if 문이 많은 코드에서 어떻게 if 문을 제거할지 한번 생각해보자.   public class CalculateCommand { private CalculateType calculateType; private int num1; private int num2; public CalculateCommand(CalculateType calculateType, int num1, int num2) { this.calculateType = calculateType; this.num1 = num1; this.num2 = num2; } public CalculateType getCalculateT..
[Java] Optional - nullPointException을 잘 다뤄보자.
·
Programming Language/Java
Optional 은 null 값을 잘 처리하기 위한 클래스입니다.   without Optional public class SimpleNpeExampleMain { public static void main(String[] args) { String string = getNullString(); System.out.println("string=" + string); System.out.println(string.toUpperCase()); } private static String getNullString() { return null; }} 근데 이렇게 당연하게 null 이 터지는 경우는 실제 상황에서 없을 것이다.좀 더 현실적인 경..
[Java] Object 클래스와 주요 메서드 - equals(), hashCode(), toString()
·
Programming Language/Java
Object 클래스란?모든 클래스는 Object 클래스의 자손 클래스이다.public class SomeObject {}public class SombeObject extends Object {} 따라서, extends Object 가 생략되어 있는거라고 생각하면 된다.    Object 클래스의 주요 메서드들 clone(), equals(), finalize(), getClass(), hashCode(), notify(), notifyAll(), toString(), wait() 이 중에서도 특히 자주 사용하는 세 가지 메서드를 알아보려한다-> equals(), hashCode(), toString()    equals()동일성 : 비교 대상이 실제로 '똑같은' 대상이어야 함 ( = 둘은 실제로는 하나..
[Java] Checked & Unchecked exception 의 차이에 대하여
·
Programming Language/Java
Checked Exception 과 Unchecked Exception 은 무슨 차이인가요? (중요)자주 이야기하는 오답Checked Exception 은 컴파일할 때 발생하고,Unchecked Exception 은 런타임에 발생하는 예외로 알고 있습니다.올바른 답변 !Checked Exception 은 컴파일할 때 예외에 대한 처리를 강제Unchecked Exception 은 예외에 대한 처리를 강제하지 않습니다.  정의되어있지 않은, 새로운 예외를 정의해야할 때는→ Unchecked Exception 을 상속받아서 쓴다 !대부분의 예외는 로직에서 해결할 수 없기 때문Checke Exception을 쓰면, 던지는 예외라는 것이 외부에 알려짐→ 캡슐화가 깨짐예외를 컴파일 도중에 처리하고싶다면, Unche..
[Java] Enum을 예제로 알아보자.
·
Programming Language/Java
enum 은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미합니다.  import java.util.function.BiFunction;// 람다로 바꾼 사칙연산을 표현하는 enumenum Expression { ADD((x, y) -> x + y), SUBTRACT((x, y) -> x - y), MULTIPLY((x, y) -> x * y), DIVIDE((x, y) -> { if (y != 0) { return x / y; } else { throw new ArithmeticException("Division by zero"); } }); private final BiFunction ..