[英]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.