[우아한테크코스] 3월 17일 TIL

less than 1 minute read

오늘 배운 것

  1. 체스 미션 진행

ParameterizedTest 여러 인자 전달

  • CSVSource로 1:1 매칭은 가능하지만 다양한 인자를 다룰 방법은 아직 찾지 못했다.

캐싱과 정적팩토리 메서드

  • 캐싱은 무조건 정적팩토리 메서드가 필요하다.
  • 정적팩토리 메서드를 사용했다고 무조건 캐싱을 사용할 필요는 없다.

IntStream의 사용

  • IntStream 사용시에 .range(0, 11) 하면 범위 제외, .rangeClosed(0, 11)하면 범위 포함이다.
  • 범위 정하고 나면 그냥 Integer 가진 Stream 다루듯이 사용할 수 있다.

char의 캐스팅

  • 우리는 ascii number를 가지고 있다. 이 때 ascii가 integer 0-9일 때 int로 그 숫자를 가지고 오고 싶었다. 그래서 (int)로 캐스팅 했는데 사실은 48-57 이었다. ‘0’의 ascii code인 48을 int로 캐스팅하면 될 것이라고 생각했지만 생각해보면 그 이상의 숫자라면 가져올 수가 없어야 하기 때문이다.
  • 이 경우에 Integer.bitCount(~~)를 하면 ascii code의 int 숫자 값을 가져올 수 있다.

enum과 람다식

  • 각기 다른 enum이 분명 다른 함수를 가질 때 익명 클래스가 아닌 람다식을 사용할 수 있을 것이다.
  • 여기서 상수는 이름, 색상, 포인트 x, 포인트 y 전부 상수로 매칭할 수 있기 때문에 고려해보는 것이 좋을 듯 하다.

메서드 인자 수

  • 메서드에 과하게 많은 인자가 전달된다는 것은 메서드가 너무 많은 일을 하고 있거나, 객체가 책임이 너무 큰 것일 수 있다.
  • 4개는 안된다. 3개도 줄이려고 고려해볼 필요가 있다.