Следующий простой Java-код отправляет java.lang.VerifyError: неверный тип в стеке операнда
public class TestJavaCodes {
int parentData = 0;
public void init() {
A ob = new B();
}
public static void main(String[] args) {
TestJavaCodes testJavaCodes = new TestJavaCodes();
testJavaCodes.init();
}
public static class A {
public A(MyLambdaFunc lambdaFunc) {
}
}
public class B extends A {
public B() {
super((data1, type) -> {
parentData = 1;
});
}
}
@FunctionalInterface
public static interface MyLambdaFunc {
public void onData(String data, int type);
}
}
Если я удалю код
parentData = 1
из конструктора B
, исключение не наступит.
Может ли кто-нибудь объяснить причину этого?