StringConcatFactory — 문자열 연결을 위한 전략 팩토리

StringConcatFactory — 문자열 연결을 위한 전략 팩토리

StringConcatFactory는 문자열 연결(+) 연산을 위한 메서드 핸들 기반의 "연결 전략(recipe)"을 만들고 연결하게 하는 팩토리 클래스예요. 자바 9 이후 문자열 연결이 StringBuilder 기반이 아니라 이 팩토리가 만들어 주는 보다 효율적인 방식으로 구현되기 시작했어요.

출처: Java API Reference

본문

StringConcatFactory는 이름이 같은 StringConcatException과 짝을 이루는 팩토리예요. 이 팩토리에서 "연결 불변식(linkage invariants)"이 위반되면 StringConcatException이 던져져요. 일반 코드는 컴파일러가 생성한 invokedynamic을 통해 이 팩토리의 메서드를 부트스트랩으로 사용하므로, 대부분의 개발자는 직접 다룰 일이 드물어요.

주요 static 메서드

  • static CallSite makeConcat(MethodHandles.Lookup lookup, String name, MethodType concatType) throws StringConcatException — 인자 개수와 타입이 주어진 연결 타입의 메서드 핸들을 만드는 콜 사이트를 생성해요. 이 메서드는 인자들을 ""(빈 문자열) 또는 "\u0001" 구분자로 연결하는 기본 레시피를 사용해요.
  • static CallSite makeConcatWithConstants(MethodHandles.Lookup lookup, String name, MethodType concatType, String recipe, Object... constants) throws StringConcatException — 인자들이 상수와 텍스트로 어떻게 결합되는지를 설명하는 레시피(recipe) 로 메서드 핸들을 만드는 콜 사이트를 생성해요. 레시피 문자열은 인자 바인딩 구조를 나타내요.

final 클래스이고 자바 9부터 제공돼요.

더 알아보기 (Learn more)