Java中的std::variant是什么

Java中的std::variant是什么,java,Java,我想知道最接近std::variant的是什么。我知道对象存在,但这不是我的选择,我希望能够限制我正在处理的事情 我想用它实现的一个例子是 static String helper(Object o) { switch (o.getClass().getSimpleName()) { case "String": return String.format("String %s", o);

我想知道最接近std::variant的是什么。我知道对象存在,但这不是我的选择,我希望能够限制我正在处理的事情

我想用它实现的一个例子是

static String helper(Object o) {
    switch (o.getClass().getSimpleName()) {
        case "String": 
            return String.format("String %s", o); 
        case "Integer": 
            return String.format("Integer %d", o); 
        default: 
            return String.format("Object %s", o);
    }
}

但是,正如我提到的,我希望能够限制输入可能是什么。

我不确定我理解这个问题,但是你应该使用<代码>实例< /COD> >这里Java不是C++,你不应该期望找到所有的直接等价物。为什么这不只是三个重载方法呢?用有界类型参数创建自己的泛型类是可行的解决方案吗?检查文档。基本上,Java没有联合类型
std::variant
用于类型安全联合,但Java。。。在函数式语言中,这两种类型都有Vavr Java库,但对于那些没有函数式语言背景的人来说,这有点麻烦:在自然Java中,您拥有的是
对象
。这是最简单、最简洁的。你可以考虑定义你自己的类型,<代码> StRigRoNo.<代码>之类的,但是这取决于你没有给我们的细节。