繁体   English   中英

将Integer或String数组作为参数传递给java

[英]passing Integer or String array as an argument in java

我正在编写一个java函数,它接受两个参数: 一个string类型, 另一个可以是array of String, Integer, Float, Double, BooleanString

在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM