MethodHandles.Lookup.FindConstructor(Class, MethodType) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 형식의 생성자를 사용하여 개체를 만들고 초기화하는 메서드 핸들을 생성합니다.
[Android.Runtime.Register("findConstructor", "(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public Java.Lang.Invoke.MethodHandle FindConstructor (Java.Lang.Class refc, Java.Lang.Invoke.MethodType type);
[<Android.Runtime.Register("findConstructor", "(Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
member this.FindConstructor : Java.Lang.Class * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
매개 변수
- refc
- Class
메서드에 액세스하는 클래스 또는 인터페이스
- type
- MethodType
수신기 인수가 생략된 메서드의 형식 및 void 반환 형식
반환
원하는 메서드 핸들
- 특성
설명
지정된 형식의 생성자를 사용하여 개체를 만들고 초기화하는 메서드 핸들을 생성합니다. 메서드 핸들의 매개 변수 형식은 생성자의 매개 변수 형식이며 반환 형식은 생성자의 클래스에 대한 참조가 됩니다. 생성자와 모든 인수 형식은 조회 개체에 액세스할 수 있어야 합니다.
요청된 형식에는 반환 형식 void
이 있어야 합니다. (이는 생성자 형식 설명자에 대한 JVM의 처리와 일치합니다.)
반환된 메서드 핸들은 생성자의 변수 arity 한정자 비트(0x0080
)가 설정된 경우에만 MethodHandle#asVarargsCollector 변수 arity를 갖습니다.
반환된 메서드 핸들이 호출되면 생성자의 클래스가 초기화되지 않은 경우 초기화됩니다.
<b>예제:</b><blockquote>
{@code
import static java.lang.invoke.MethodHandles.*;
import static java.lang.invoke.MethodType.*;
...
MethodHandle MH_newArrayList = publicLookup().findConstructor(
ArrayList.class, methodType(void.class, Collection.class));
Collection orig = Arrays.asList("x", "y");
Collection copy = (ArrayList) MH_newArrayList.invokeExact(orig);
assert(orig != copy);
assertEquals(orig, copy);
// a variable-arity constructor:
MethodHandle MH_newProcessBuilder = publicLookup().findConstructor(
ProcessBuilder.class, methodType(void.class, String[].class));
ProcessBuilder pb = (ProcessBuilder)
MH_newProcessBuilder.invoke("x", "y", "z");
assertEquals("[x, y, z]", pb.command().toString());
}
</blockquote>
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.