1*055d4590SKeyi Gui /* 2*055d4590SKeyi Gui * Copyright (C) 2017 The Android Open Source Project 3*055d4590SKeyi Gui * 4*055d4590SKeyi Gui * Licensed under the Apache License, Version 2.0 (the "License"); 5*055d4590SKeyi Gui * you may not use this file except in compliance with the License. 6*055d4590SKeyi Gui * You may obtain a copy of the License at 7*055d4590SKeyi Gui * 8*055d4590SKeyi Gui * http://www.apache.org/licenses/LICENSE-2.0 9*055d4590SKeyi Gui * 10*055d4590SKeyi Gui * Unless required by applicable law or agreed to in writing, software 11*055d4590SKeyi Gui * distributed under the License is distributed on an "AS IS" BASIS, 12*055d4590SKeyi Gui * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*055d4590SKeyi Gui * See the License for the specific language governing permissions and 14*055d4590SKeyi Gui * limitations under the License. 15*055d4590SKeyi Gui */ 16*055d4590SKeyi Gui 17*055d4590SKeyi Gui import constmethodhandle.ConstTest; 18*055d4590SKeyi Gui import java.lang.invoke.MethodHandle; 19*055d4590SKeyi Gui import java.lang.invoke.MethodHandles; 20*055d4590SKeyi Gui import java.lang.invoke.MethodType; 21*055d4590SKeyi Gui 22*055d4590SKeyi Gui public class Main{ main(String[] args)23*055d4590SKeyi Gui public static void main(String[] args) throws Throwable { 24*055d4590SKeyi Gui // At compilation time, ConstTest.main has not yet been 25*055d4590SKeyi Gui // generated. It is generated before execution / linking. 26*055d4590SKeyi Gui MethodHandle generatedMain = MethodHandles.lookup() 27*055d4590SKeyi Gui .findStatic(ConstTest.class, "main", MethodType.methodType(void.class, String[].class)); 28*055d4590SKeyi Gui generatedMain.invokeExact(args); 29*055d4590SKeyi Gui } 30*055d4590SKeyi Gui } 31