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