Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pack;
- import natan12_.util.natives.Nonvirtual;
- public class NonVirtualTest
- {
- public static void main(String[] args)
- {
- a a = new b();
- System.out.format("Direct invocation: '%s'%n", a.s()); //prints "Direct invocation: 'inside b'"
- System.out.format("Nonvirtual invocation: '%s'%n",
- Nonvirtual.callNonvirtualObjectMethod(
- a.class, /*class declaring the method*/
- a, /* instance */
- "s", /*method name*/
- "()Ljava/lang/String;" /*signature (use Nonvirtual.getSignature(Class, Class[]) or Nonvirtual.getSignature(Method)*/
- )
- ); //prints "Nonvirtual invocation: 'inside a'"
- }
- static class a
- {
- public String s()
- {
- return "inside a";
- }
- }
- static class b extends a
- {
- @Override
- public String s()
- {
- return "inside b";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement