Search in sources :

Example 16 with SamePackageInnerClass

use of com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass in project openj9 by eclipse.

the class Find_InvokeTracker method test_GetterSetter_Protected_SamePackage_InnerClass_Level1.

/**
 * findSetter, findGetter test using protected fields of an inner classes (level 1 deep)
 * where the lookup class is the top level outer class.
 * @throws Throwable
 */
@Test(groups = { "level.extended" })
public void test_GetterSetter_Protected_SamePackage_InnerClass_Level1() throws Throwable {
    Lookup publicLookup = MethodHandles.lookup();
    MethodHandle mhSetter = publicLookup.findSetter(SamePackageExample.SamePackageInnerClass.class, "nonStaticProtectedField_Inner1", int.class);
    MethodHandle mhGetter = publicLookup.findGetter(SamePackageExample.SamePackageInnerClass.class, "nonStaticProtectedField_Inner1", int.class);
    SamePackageExample.SamePackageInnerClass g = (new SamePackageExample()).new SamePackageInnerClass();
    mhSetter.invokeExact(g, 5);
    int o = (int) mhGetter.invokeExact(g);
    AssertJUnit.assertEquals(o, 5);
}
Also used : Lookup(java.lang.invoke.MethodHandles.Lookup) SamePackageInnerClass(com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass) SamePackageInnerClass(com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass) MethodHandle(java.lang.invoke.MethodHandle) Test(org.testng.annotations.Test)

Aggregations

SamePackageInnerClass (com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass)16 Test (org.testng.annotations.Test)16 MethodHandle (java.lang.invoke.MethodHandle)14 Lookup (java.lang.invoke.MethodHandles.Lookup)13 SamePackageInnerClass_Nested_Level2 (com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass.SamePackageInnerClass_Nested_Level2)7 MethodHandles.publicLookup (java.lang.invoke.MethodHandles.publicLookup)1