Java中对象的类型切换

2024-04-11

所以我想知道一种在Java中切换有效类型的简单方法,如下所示:

(我知道这不能编译,但我想要这个功能)

public void put(Object obj) {
    if (obj instanceof Integer) {

    } else if (obj instanceof String) {

    } else if (obj instanceof Boolean) {

    } else if (obj instanceof List<String>) {

    } else if (obj instanceof Map<String, String>) {

    }
}

简单的答案是:有no在 Java 中打开“类型”。与 Scala 等语言相比,Java 没有近乎神奇的“模式匹配”功能。

当您确实需要这样做时:确定对象实例的特定类型,然后根据对象的真实性质执行不同的操作,这样的 if/else 级联是为数不多的选择之一。

一种替代方法是使用地图,例如Map<Class<?>, Consumer<?>)或类似的东西。换句话说:您(预先)创建一个知道method调用不同的类,然后执行obj.getClass()看看你的地图是否知道这个类。但该机制不是很稳健,因为它只使用equals()对于类实例。

除此之外:只有极少数选定的用例使这种“类型切换”有意义。通常,您可以通过退后一步,查看real根本问题并设计完全不同的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中对象的类型切换 的相关文章

随机推荐