class Test {
final Runnable runnable;
{
runnable = () -> System.out.println(runnable);
}
final Runnable runnable1;
{
runnable1 = new Runnable() {
@Override
public void run() {
System.out.println(runnable1);
}
};
}
}
abstract class TestInnerAnonymous {
void foo() {
new Object() {
final Runnable runnable;
{
runnable = () -> System.out.println(runnable);
}
final Runnable runnable1;
{
runnable1 = new Runnable() {
@Override
public void run() {
System.out.println(runnable1);
}
};
}
};
}
private static class MyObject {
final Runnable runnable;
{
runnable = () -> System.out.println(runnable);
}
final Runnable runnable1;
{
runnable1 = new Runnable() {
@Override
public void run() {
System.out.println(runnable1);
}
};
}
}
}
interface Fun {
B m(A a);
}
class TestAnonymousWithRefToTheTopLevelUninitializedField {
private final int myId;
private Runnable r = new Runnable() {
final int localId;
{
localId = 0;
}
Fun ff = (a) -> myId;
Fun ffLocal = (a) -> localId;
public void run() {
}
};
public TestAnonymousWithRefToTheTopLevelUninitializedField(int id) {
myId = id;
}
}
class TestThisQualified {
final String s;
final Runnable r = () -> System.out.println(this.s.length());
final Runnable r2 = () -> System.out.println(this.r2);
final Runnable r3;
{
r3 = () -> System.out.println(this.r3);
}
public TestThisQualified() {
s = "";
}
}