我在这里多次看到类似的问题,但有一个很大的不同。
在其他问题中,返回类型由参数决定。我想要/需要做的是通过 byte[]
的解析值确定返回类型。从我收集到的信息来看,以下方法可能有效:
public Comparable getParam(String param, byte[] data) {
if(param.equals("some boolean variable")
return data[0] != 0;
else(param.equals("some float variable") {
//create a new float, f, from some 4 bytes in data
return f;
}
return null;
}
我只是想确保在我搞砸任何事情之前它有机会工作。提前致谢。
原文由 Jon Egeland 发布,翻译遵循 CC BY-SA 4.0 许可协议
你做不到。 Java 返回类型必须是固定的基本类型或对象类。我很确定你能做的最好的事情就是返回一个包装器类型,它有方法来获取各种可能的值类型,以及一个内部枚举,它说明哪个是有效的。
--- 编辑 --- 在 Danieth 的更正之后!
您仍然会因装箱项目和检查返回值的类型而受到一些惩罚,当然,如果您的调用与 getParam 的实现实际执行的操作不一致,您将得到一个类强制转换异常。