У меня есть вопрос произнесения которого генерирует исключение: java.lang.ClassCastException
java.lang.ClassCastException с org.apache.logging.log4j.Logger
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.message.MessageFactory;
public class MyLogger extends org.apache.logging.log4j.core.Logger {
MyLogger(LoggerContext context, String name, MessageFactory messageFactory) {
super(context, name, messageFactory);
// TODO Auto-generated constructor stub
}
public static MyLogger getLogger(String name) {
org.apache.logging.log4j.core.Logger logger_ = (org.apache.logging.log4j.core.Logger) LogManager
.getLogger(name);
return (MyLogger) logger_;
}
}
Хотя это тот же самый принцип, как этот:
public class test {
private static class A {
}
private static class B extends A {
}
public static void main(String [] args) {
A a = new A();
B b = new B();
a = (A) b;
}
}
Может кто-нибудь дать объяснение?
Вы уверены, что 'LogManager.getLogger (name)' возвращает экземпляр 'MyLogger'? Почему? – sp00m