Java vararg对象。。。使用混合数据类型
如何从混合类型对象中提取值。。。Java中的vararg 比如说 对象。。。args被传递一个int、一个字符串和一个日期,如下所示Java vararg对象。。。使用混合数据类型,java,Java,如何从混合类型对象中提取值。。。Java中的vararg 比如说 对象。。。args被传递一个int、一个字符串和一个日期,如下所示 Hello(5, "Hello", Date.now); Hello(Object... args) {...} 我不建议这样做,但既然你问: public void Hello(Object... args) { ... } args.length是传递的参数数 args[0]是传递的第一个参数。通过args[args.length-1]依此类推。
Hello(5, "Hello", Date.now);
Hello(Object... args) {...}
我不建议这样做,但既然你问:
public void Hello(Object... args) {
...
}
args.length
是传递的参数数
args[0]
是传递的第一个参数。通过args[args.length-1]
依此类推。它们都将成为一个对象
,直到您将其强制转换
在现实生活中这样做的问题是,未来的开发人员编写代码来调用您的方法几乎肯定会出错。您没有提供类型安全或任何机制来确保他们不会错误地调用该方法。进一步解释。没有类型安全的方法来处理
对象…
。将数组中的每个元素强制转换为所需的类型。正确的解决方案是(可能)根本不使用对象…
,而是使用POJO holder类型。您的Hello
应该重写。此时您可能应该重新设计并重新思考。也许您可以找到一个公共接口,或者创建一个。任何比Object
更具体的东西都会更好。好吧,在编辑您的答案之后,这可能是可以接受的。我想OP询问了如何检索特定元素的类,而不仅仅是值。或者两者兼而有之。也许他可以像以前一样再次使用它们,使用完整的类型信息(因此包括一个cast)。