java - 使用 Java 转换基本类型

标签 java

假设我有一个基类:

abstract class TheBase {}

class Foo extends TheBase {}
class Bar extends TheBase {}

我想将基础对象“转换”为这种类型:

TheBase obj = getFromSomewhere();

Foo foo = obj.asA(Foo.class);

Bar bar = obj.asA(Bar.class);

asA 将抛出一个我定义的异常:CustomCannotCastException()

这可能吗?

最佳答案

你需要这样的东西吗?

public class TheBase {
    public <T> T asA(Class<T> claxx) {
        if (claxx.isInstance(this)) {
            return claxx.cast(this);
        } else {
            throw new CustomCannotCastException();
        }
    }
}

关于java - 使用 Java 转换基本类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508202/

相关文章:

java - 使用 hashmap 还是 H2 数据库?

java - 在 Eclipse 中发现从 Android 的方向 API JSON 数据中提取 html_instructions 的困难

32 位系统上的 Java 10(及以下版本)

java - 尝试使 json 在 jsp 页面中工作时出现错误。如何调试这个?

java - 如何以编程方式检查 "use wireless networks"是否在 Android 上启用?

java - 使用 java 正则表达式进行电子邮件 ID 验证

java - 如何在 java 中获取带注释的值?

java - 在 jmeter 上执行负载测试时出现套接字关闭错误

java - 为什么 KeyValue 采用公钥?

java - 在 Blackberry Java 中剥离一串 html 标签