java - 将对象转换为其原始类

标签 java casting

为了避免必须这样做:

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/

相关文章:

Java 正则表达式 replaceall

objective-c - (Objective-C/Cocoa) Casted Superclass 保持不变

c++ - 切片 : When passing derived as reference to base, 基引用丢失数据?

java - 无法在 BroadcastReceiver 中实例化接收器

java - Spring Boot 不起作用?

java - 根据不同的id开头从数据库更改密码

casting - VB.NET 中 CType 的 C# 等效项是什么?

java - Java中删除链表中的节点

c - "(type)variable"和 "*((type *)&variable)"之间有什么区别(如果有)?

java - 如何在 Java 中将十六进制字符串转换为有符号 int 值?