不重複的問題如何陣列轉換成多個變量在Java中
正如我所說向下,我已經檢查瞭如何在Java中使用不同數量則params的工作。它將它們包裝成一個數組,然後繼續。但我需要通過不同數量PARAMS的一個函數,不是數組,因爲它會用JavaScript
我與犀牛,以便在執行一些JavaScript腳本的工作來處理java的。 我試圖儘可能地模塊化代碼,以便於使用。
我有以下函數調用已經是一個JavaScript方法:
MyClass{
....
public static Object call(ScriptObjectMirror ctx, String functionName, Object ...args) {
ScriptObjectMirror caller = ctxs.get(ctx); // assume this works, it brings correct data
return caller.call(ctx, functionName, args);
}
....
}
所以,我讀到這樣Can I pass an array as arguments to a method with variable arguments in Java?
凡明確指出,對象不同的問題......是一樣的對象[]。
然而,當我在JavaScript端的工作,我收到取決於ARGS不同的事情:
可以說,我做以下電話:
MyClass.call(myCtx, "a", true, false);
它將調用:
caller.call(myCtx, "a", [true, false]); //Javascript prints: [Ljava.lang.Object;@273d3dbb
但是,如果我跳過MyClass.call的方法來直接調用這樣的javascript函數:
caller.call(myCtx, "a", true, false); //Javascript prints true, false
THEREFOR
我能理解Java的內部工作正常兩者(對象...和對象[]),因爲我使用的犀牛但,我真正需要的是能夠得到ARGS ,並將它們分開。
喜歡的東西:
public static Object call(ScriptObjectMirror ctx, String functionName, Object ...args) {
//Pseudocode of what I want to achieve
for (arg: args) {
arg1 = arg;
arg2 = arg;
argN = arg;
}
return caller.call(ctx, functionName, arg1, arg2, ..., argN);
}
有什麼辦法來實現這一目標? /任何解決方法?
注意
我不能只在JavaScript方面承擔我總是收到不同的參數數組,因爲它可以從很多不同的地方被調用,就意味着要真正重新編寫大量的代碼
你需要在這裏使用可變參數? – LazerBanana
不可以,除非您按照建議事先知道參數的數量。 –
@Krystian_K是的,我知道,因爲它可以接收任意數量的參數 – Mayday