使用命名内部类替代匿名类,从而避免不同编译器生成不同的类名。以下是一个范例代码:
public class Example {
private MyListener listener = new MyListener() {
@Override
public void onEvent() {
System.out.println("Event fired!");
}
};
public interface MyListener {
void onEvent();
}
// 命名内部类
private class MyNamedListener implements MyListener {
@Override
public void onEvent() {
System.out.println("Event fired!");
}
}
public void doSomething() {
// 使用命名内部类而不是匿名类
MyListener namedListener = new MyNamedListener();
namedListener.onEvent(); // 输出 "Event fired!"
}
}