Нужно написать внутренний класс, т.е. такой getDeclaringClass() которого возвращает не null.
Нужно написать на JasminXT или на Jamaica.
Например:
;------------------------------------------------------------------
;This is outer class
.source Outer.j
.class Outer
.super SomeSuperClass
.method public createrInnerClass()V
.limit stack 10
.limit locals 10
;create a Inner object
new Outer$Inner
dup
invokenonvirtual Outer$Inner/<init>(LOuter

V
;test function must print a Outer class name
invokevirtual Outer$Inner/testFunction ()V
.end method
;------------------------------------------------------------------
;This is inner class
.source Outer$Inner.j
.class Outer$Inner
.super java/lang/Object
.field final this$0 LOuter;
;contructor
.method pubilc <init>(LOuter

V
.limit stack 10
.limit locals 10
aload_0
invokenonvirtual Object/<init>()V
aload_0
aload_1
putfield Inner$Outer/this$0 LOuter;
return
.end method
;test
.method public testFunction ()V
.limit stack 10
.limit locals 10
;get out object
getstatic java/io/PrintStream/out java/io/PrintStream;
aload_0
invokevirtual java/lang/Object/getClass()java/lang/Class;
;now in stack Outer$Inner class
invokevirtual java/Class/getDeclaringClass()java/lang/Class;
;but now in stack null
invokevirtual java/io/PrintStream/print (Ljava/lang/Object

V
.end method
Но getDeclaringClass () возвращает null. Я дисассемблировал реальный java код,
используя dejasmin. Он был таким же, но там всё работало.
Что я делаю не так?