[英]passing Integer or String array as an argument in java
我正在编写一个java函数,它接受两个参数: 一个是string
类型, 另一个可以是array of String, Integer, Float, Double, Boolean
或String
。
在JavaScript中,将任何数据作为参数传递都很容易,但java中的优秀解决方案是什么?
在java中,您只能传递方法中定义的数据。 解决这个问题的方法可以是使用Object作为参数。 除此之外,您可以使用相同的名称创建许多方法,但接受不同的参数。 例:
public void example(String str, Object obj){ /* code */ }
使用Object时,您需要确保检查它的类型,因此您最终不会尝试将整数用作字符串数组。
我很确定使用Object不是最好的方法,你应该使用不同参数的多个方法。
您可以重载该方法以接受不同的参数。
void doSomething(String x, int[] y) {}
void doSomething(String x, String[] y) {}
void doSomething(String x, String y) {}
这样,你仍然具有类型安全性( Object
参数不会给你)。
我想这就是你想要的
public void method1(String str,Object ... val)
在方法体内,您将不得不相应地处理不同的对象
因为你想要第二个对象作为任何数据类型数组,你可以做这样的事情
public void _methodName(String arg1,Object[] arg2)
由于String,Integer,Float,Boolean都是从java.lang.Object
继承而来的,你可以简单地传递Object[]
作为第二个参数,并且无论你想要什么,你都可以传递参数( String,Int,.... etc )。
根据您的需要,方法的原型如下:
public void testMethod(String strVal, Object[] genericVal)
现在在body部分中,您必须使用Wrapper Classes将对象强制转换为所需的格式。
以上实施将解决该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.