В Java можно ли предотвратить расширение класса анонимно?Избегайте расширения класса, анонимно расширяемого в Java
Например
public class A() {
public void hello() {}
}
Я хочу, чтобы именованный расширение класса:
public class B extends A {
}
но не анонимно:
A a = new A() {
public void hello() {
}
}
Это для сериализации цели.
Нет, нет возможности предотвратить анонимное подклассов. Если вы действительно хотите решить эту проблему, не прибегая к тому, чтобы в вашей базе кода было заключено соглашение «подклассы должны быть легко сериализованы», я хотел бы предложить сделать конструктор пакета «A» частным (при необходимости создать общедоступный заводский метод) и попробовать спроектировать его так, чтобы 'B' жил в одном пакете. – aioobe
Это выглядит как [проблема XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Подумайте об обновлении своего вопроса и объясните свою реальную проблему. – Pshemo