我有一个投问题,其产生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 2014-10-30 14:12:00