在 Java 中,是否可以阻止类被匿名扩展?
例如
public class A () {
public void hello() {}
}
我想允许命名类扩展:
public class B extends A {
}
但不是匿名的:
A a = new A() {
public void hello() {
}
}
这是为了序列化目的。
最佳答案
是的,有一种方法可以通过使用运行时异常来实现:
class MyData implements Serializable {
public MyData() {
if (getClass().isAnonymousClass()) {
throw new IllegalStateException("Anonymous subclasses are not serializable.");
}
}
}
从技术上讲,匿名类是可序列化的,但看看 this 可能是个好主意在尝试接受之前。
关于java - 避免在 Java 中匿名扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33902080/