Reflection API · interview question
What string is produced when this MethodHandle invokes String.concat?
Multiple choiceMediumchapter-16-curatedpremiumreflection-apimethodhandles
import java.lang.invoke.*;
public class Test {
public static void main(String[] args) throws Throwable {
MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodHandle mh = lookup.findVirtual(String.class, "concat", MethodType.methodType(String.class, String.class));
String result = (String) mh.invokeExact("Hello, ", "World!");
System.out.println(result);
}
}Answer and explanation
Correct answer
D. Hello, World!
Why
The MethodHandle created by findVirtual is used to invoke the 'concat' method on the String 'Hello, ', resulting in the output 'Hello, World!'.
Test yourself on Reflection API
A free test with instant, explained results. No account needed.
More Reflection API questions
- Given using Class.forName("com.example.MyClass") in Java, what outcome should you expect?
- Which method would you use to check if a class is an interface using Reflection?
- In what scenario would you prefer reflection for method invocation over direct method calls?
- Which of the following is NOT a drawback of using Java Reflection?
- If you use Method.invoke() to call a private method, what must you do first?
- How does Java's reflection API impact type safety?