Я подключаю scala к некоторому нативному коду (через java + jna) и собираюсь переписать API, используя кортежи и несколько возвращаемых параметров. Но мне интересно, есть ли лучший способ (с последствиями или что-то).
Например, у меня может быть подпись метода типа
MyLib.__stdcall aMethod(String inParam, String[] out1, int[] out2);
Где находятся массивы, чтобы я мог получить значения в Java:
String[] out1 = new String[1];
Int[] out2 = new Int[1];
lib.aMethod("in", out1, out2);
String theRealOut1Value = out1[0];
Int theRealOut2Value = out2[0];
и вуаля! Как просто!
Я почти уверен, что единственное разумное, что нужно сделать, - это создать обертку с (scala) методом, например:
aMethodWrapper(in : String) : (String, Int)
Я не надеюсь, но я вижу магию на каждом шагу в скале, поэтому мне было интересно:)