簡體   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