import static java.lang.invoke.MethodHandles.*;
import static java.lang.invoke.MethodType.*;
import java.lang.invoke.MethodHandle;
import java.util.Arrays;
class Ideone
{
MethodHandle MH_arrayClone = publicLookup()
.
findVirtual(int[].
class,
"clone", methodType
(Object.
class)) .asType(methodType(int[].class, int[].class)); // convenient cast return type
int[] a = { 1, 2, 3, 4 };
int[] b = (int[]) MH_arrayClone.invokeExact(a);
}
}
aW1wb3J0IHN0YXRpYyBqYXZhLmxhbmcuaW52b2tlLk1ldGhvZEhhbmRsZXMuKjsKaW1wb3J0IHN0YXRpYyBqYXZhLmxhbmcuaW52b2tlLk1ldGhvZFR5cGUuKjsKCmltcG9ydCBqYXZhLmxhbmcuaW52b2tlLk1ldGhvZEhhbmRsZTsKaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CgpjbGFzcyBJZGVvbmUKewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIFRocm93YWJsZSB7CiAgICAgICAgTWV0aG9kSGFuZGxlIE1IX2FycmF5Q2xvbmUgPSBwdWJsaWNMb29rdXAoKQogICAgICAgIAkJLmZpbmRWaXJ0dWFsKGludFtdLmNsYXNzLCAiY2xvbmUiLCBtZXRob2RUeXBlKE9iamVjdC5jbGFzcykpCiAgICAgICAgCQkuYXNUeXBlKG1ldGhvZFR5cGUoaW50W10uY2xhc3MsIGludFtdLmNsYXNzKSk7IC8vIGNvbnZlbmllbnQgY2FzdCByZXR1cm4gdHlwZQogICAgICAgIAogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpKTsKICAgICAgICAKICAgICAgICBpbnRbXSBhID0geyAxLCAyLCAzLCA0IH07CiAgICAgICAgaW50W10gYiA9IChpbnRbXSkgTUhfYXJyYXlDbG9uZS5pbnZva2VFeGFjdChhKTsKICAgICAgICAKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oQXJyYXlzLnRvU3RyaW5nKGEpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oQXJyYXlzLnRvU3RyaW5nKGIpKTsKICAgIH0KfQ==