Comment retourner un objet Appelable()
Je suis en train de retourner un tableau 2d de call(), je vais avoir quelques problèmes. Mon code pour l'instant est:
//this is the end of main
Thread t1 = new Thread(new ArrayMultiplication(Array1, Array2, length));
t1.start();
}
public int[][] call(int[][] answer)
{
int[][] answer = new int[length][length];
answer = multiplyArray(Array1, Array2, length); //off to another function which returns the answer to here
return answer;
}
Ce code compile, ce n'est pas le retour de mon tableau. Je suis sûr que je suis probablement l'utilisation de la mauvaise syntaxe, mais je ne trouve pas de bons exemples.
EDIT: changé un peu
Quel est-il de retour? Où est la longueur en venir? Où sont Matrice1 et Matrice2 en venir?
Je suis sûr que
Qu'est-ce que l'invocation de la méthode call ()?
Je suis sûr que
answer = multiplyArray(Array1, Array2, length,);
ne compile pas car il ya un supplément de ,
. Vous devriez poster plus de Code, parce que je ne pense pas que c'est possible de faire une hypothèse ici sans doute.Qu'est-ce que l'invocation de la méthode call ()?
OriginalL'auteur user650309 | 2011-04-01
Vous devez vous connecter pour publier un commentaire.
Ajoutant à Joseph Ottinger réponse, pour transmettre des valeurs à être utilisés à l'intérieur de Appelable de la méthode call (), vous pouvez utiliser des bouchons:
OriginalL'auteur Marimuthu Madasamy
Voici un peu de code illustrant l'utilisation de la "Callable" <> interface:
Ce que cela fait, c'est de construire un objet qui peut être soumis à un exécuteur testamentaire service. C'est fondamentalement la même que sur un Praticable, sauf qu'il peut renvoyer une valeur, ce que nous faisons ici est la création d'un ExecutorService avec deux threads, puis en soumettant ce exigible pour le service.
La prochaine chose qui se passe est le résultat.get(), qui permet de bloquer jusqu'à ce que le callable retourne.
Vous ne devriez probablement pas faire le Thread de gestion de vous-même.
Vous pourriez transmettre à la construction, ou d'étendre le Callable interface à utiliser une instance locale de tableaux.
Super réponse, et bravo pour la promotion de la ExecutorService d'utilisation. Il n'y a pas beaucoup d'endroits on doit être à l'aide de Fil à jamais.
OriginalL'auteur Joseph Ottinger
En plus de Joseph excellente réponse, notez que votre signature de la méthode est
int[][] call(int[][])
. Si vous faites référence à laCallable
javadoc, vous verrez que leCallable
'scall()
méthode ne prend pas d'argument. Si votre méthode est une surcharge, pas un remplacement, et donc de ne pas être appelé par tout ce qui est appelCallable
'scall()
méthode.Comme les Allemands disent: "Da liegt der Hund begraben" - c'est là que réside le problème.
OriginalL'auteur QuantumMechanic