blob: f014507576340973c0d8509f267e27e83b104425 [file] [log] [blame]
// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package nesthostexample;
public class BasicNestHostWithAnonymousInnerClass {
private String method() {
return "hostMethod";
}
private static String staticMethod() {
return "staticHostMethod";
}
private String field = "field";
private static String staticField = "staticField";
public static InterfaceForAnonymousClass createAnonymousNestedInstance() {
return new InterfaceForAnonymousClass() {
public String accessOuter(BasicNestHostWithAnonymousInnerClass o) {
return o.field
+ o.staticField
+ BasicNestHostWithAnonymousInnerClass.staticField
+ o.method()
+ o.staticMethod()
+ BasicNestHostWithAnonymousInnerClass.staticMethod();
}
};
}
public interface InterfaceForAnonymousClass {
String accessOuter(BasicNestHostWithAnonymousInnerClass o);
}
public static void main(String[] args) {
BasicNestHostWithAnonymousInnerClass outer = new BasicNestHostWithAnonymousInnerClass();
InterfaceForAnonymousClass anonymousInner =
BasicNestHostWithAnonymousInnerClass.createAnonymousNestedInstance();
System.out.println(anonymousInner.accessOuter(outer));
}
}