为了避免必须这样做:
if (obj instanceof Class) {
someHandlingMethod((Class) obj);
}
else if (obj instanceof AnotherClass) {
someHandlingMethod((AnotherClass) obj);
}
是否可以按照 obj.getClass().getName()
所述自动将对象转换为其已知类?
其次,它是否简洁可靠?或者使用“责任链”或“处理程序”模式会更好吗?
对于上下文:
在我的程序中接收到的对象是从通过网络传输的 ObjectInputStream 中读取的对象。收到的所有对象都是“消息”类型,然后我有几个消息类型的子类(例如 AuthenticateRequest、ViewRequest)。我想以不同的方式处理这些问题。
最佳答案
您尝试执行的操作称为动态调用。您可以做的最接近的事情是使用反射。
Method method = getClass().getMethod("someHandlingMethod", obj.getClass());
method.invoke(this, obj);
关于java - 将对象转换为其原始类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267228/