MethodTypeConversionStrategy

MethodTypeConversionStrategy (메서드 타입 변환 전략)

메서드 핸들을 새 타입으로 변환하는 전략을 나타내는 객체를 위한 인터페이스입니다. 전형적인 용도는 언어 런타임이 메서드 호출 변환을 처리하는 방식을 커스터마이즈하는 것이에요. 함수형 인터페이스라 람다나 메서드 참조로 사용할 수 있습니다.

출처: Java API Reference

본문

Dynalink의 기본 동작만으로는 일부 언어 특유의 타입 변환 규칙을 완전히 담아내기 어려울 수 있어요. DynamicLinkerFactory.setAutoConversionStrategy(...)로 이 전략을 설정하면, 자동 타입 변환이 일어나는 방식을 언어 런타임이 직접 제어할 수 있습니다.

이 인터페이스는 메서드 핸들의 타입을 새 타입으로 바꾸는 asType 메서드 하나로 이루어져 있어요. 내부적으로는 필요한 인자 변환·반환 변환을 조합해 일반적인 MethodHandle.asType과 달라지는 변환 규칙을 적용합니다.

기본 JVM 변환만으로는 표현하기 어려운 언어 특유의 규칙을 담고 싶을 때 이 전략을 쓰면 됩니다. 예를 들어 특정 타입끼리는 암묵적 변환이 가능하다거나, 어떤 변환은 허용하지 말아야 한다는 정책을 이 인터페이스 안에 담을 수 있어요.

DynamicLinkerFactory.setAutoConversionStrategy(...)로 설정하며, 이렇게 하면 자동 타입 변환이 일어나는 방식을 언어 런타임이 직접 제어할 수 있습니다. 함수형 인터페이스라 람다로 간단히 작성할 수 있는 점도 실용적이에요.

메서드

  • asType(MethodHandle target, MethodType newType) — 메서드 핸들을 새 타입으로 변환합니다. 변환 대상 target을 새 타입 newType으로 바꾼 메서드 핸들을 반환해요.

더 알아보기

Java 공식 API