2016-03-23 4 views
-1

я написал код, и я хочу вернуть несколько значений в:Как вернуть более одного значения в java?

public int[] getResult(){ 
return geneticAlgorithm(cost,profit,gens,turns,cmax); 

но когда я использую это показать мне EROR:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: knapsacproject.algorithm.geneticAlgorithm([I[IIII)[I 
at knapsacproject.algorithm.geneticAlgorithm(Native Method) 
at knapsacproject.algorithm.getResult(algorithm.java:39) 

мой код:

package knapsacproject; 
public class algorithm { 


public native int [] geneticAlgorithm(int[] cost, int[] profit,int cmax, int gens, int turns); 

static { 
try { 
      System.load("C:/Users/Desktop/dp/KnapSacProject/src/knapsacproject/helo.dll"); 
    System.out.println("loaded successfully"); 
} catch (Exception e){ 
e.printStackTrace(); 
} 
} 
protected int[] cost, profit, result; 
protected int gens, turns, cmax; 

public algorithm(int[] cost,int[] profit, int gens ,int turns , int cmax) { 
this.cost=cost; 
this.profit=profit; 
this.gens=gens; 
this.turns=turns; 
    this.cmax=cmax; 

    } 

    public int[] getResult(){ 
return geneticAlgorithm(cost,profit,gens,turns,cmax); 
    } 
    public static void main (String[] args) { 
    } 
    } 

Так Как Я возвращаю несколько значений или как это исправить?

+1

Это ... даже не похоже на код Java, мне. Я думаю, что вы как бы смешиваете классы и функции, которые Java хранит как два разных домена ... строки типа this.cost будут относиться к классу владеющих. Если вы хотите вернуть несколько значений, вам нужно либо вернуть класс, который имеет эти значения в виде полей, либо построить массив из них (если они одного типа.) –

+0

Возможный дубликат [Как вернуть несколько объектов из метод Java?] (http://stackoverflow.com/questions/457629/how-to-return-multiple-objects-from-a-java-method) –

+1

Если вы хотите, чтобы люди смотрели ваш код, по крайней мере, чтобы отформатировать его читаемым образом. –

ответ

1

Сделайте объект с нужным количеством возвращаемых значений. Создайте новый объект с теми значениями, которые вы хотите. Верните объект.

+0

ОК, я прошу поблагодарить вас – petko

+0

@petko дайте мне знать, если вам нужна помощь :) –

+0

, конечно, еще раз спасибо – petko

Смежные вопросы