Renvoyer plusieurs valeurs en Java
J'ai écrit une fonction en Java et je veux que cette fonction pour renvoyer plusieurs valeurs. L'exception de l'utilisation de la matrice et de la structure, est-il un moyen de retourner plusieurs valeurs?
Mon code:
String query40 = "SELECT Good_Name,Quantity,Price from Tbl1 where Good_ID="+x;
Cursor c = db.rawQuery(query, null);
if (c!= null && c.moveToFirst())
{
GoodNameShow = c.getString(0);
QuantityShow = c.getLong(1);
GoodUnitPriceShow = c.getLong(2);
return GoodNameShow,QuantityShow ,GoodUnitPriceShow ;
}
Ce qui importe, ce n'est pas "Eclipse", mais le langage (Java).
Je me rends compte que votre code est de la pseudo-Java, mais assurez-vous le nom de vos variables avec camelCase (par exemple
Je me rends compte que votre code est de la pseudo-Java, mais assurez-vous le nom de vos variables avec camelCase (par exemple
goodNameShow
ou goodUnitPriceShow
).OriginalL'auteur shadi | 2012-11-15
Vous devez vous connecter pour publier un commentaire.
En Java, quand vous voulez une fonction pour renvoyer plusieurs valeurs, vous devez
Dans votre cas, vous devez clairement définir une classe
Show
qui pourrait avoir des champsname
,quantity
etprice
:puis modifiez votre fonction pour
Collection.sort
est mauvais style ? Vous ne pouvez pas faire un code efficace, si vous essayez de le rendre compréhensible par des gens qui ne connaissent pas les faits les plus élémentaires de la langue. Si quelqu'un ne sait pas qu'un objet ne peut être modifié par une méthode, alors il doit apprendre avant d'être impliqué dans une équipe professionnelle.C'est quand même regrettable que les langues n'apprennent pas de la CLU exemple. CLU liés à l'affectation multiple est de la semi-douteux utilisation (
x,y = y,x
), mais de multiples valeurs de retour est très utile (x,y = function(params)
). En forçant un habillage de l'objet à être renvoyé (souvent par "nettoyer" des déclarations similaires àclass Pair<A,B>
)a une pénalité en vertu de très nombreux serré appels, et le passage d'un objet à tenir les valeurs de retour, c'est horriblement malpropre avec pas de compilateur garantir que les champs sont remplis.Vous devriez jeter un oeil à Aller là où bot retourner plusieurs valeurs et de multiples assignements sont très utiles 😉
OriginalL'auteur Denys Séguret
J'ai développé une approche de base pour faire face à ce genre de situation.
J'ai utilisé une logique de séparateur dans les Chaînes.
Par exemple, si vous avez besoin de retourner dans la même fonction
1. int valeur
2. double de la valeur
3. Chaîne de valeur
vous pouvez utiliser un séparateur de chaîne
Par exemple ",.," ce type de chaîne ne serait pas généralement apparaître n'importe où.
Vous pouviez retourner une Chaîne de caractères contenant toutes les valeurs séparées par ce séparateur
"< int valeur >,.,< double valeur >,.,< String valeur >"
et les convertir en équivalent types où la fonction a été appelée à l'aide Chaîne.split(separtor)[index]
Consulter le code suivant pour l'explication -
séparateur utilisé =",.,"
Cette approche peut être utilisée comme raccourci lorsque vous ne voulez pas d'augmenter le nombre de classes pour seule fonction retourne
Il dépend de la situation à l'approche à prendre.
StringBuilder
,String
s) qui sont beaucoup plus coûteux qu'une seule instance d'une classe utilitaire. L'effort de récupérer les valeurs est injustifiable grand, exige de code inutile et a un impact notable sur les performances. Comme vous l'avez déjà remarqué, le séparateur ne doit pas apparaître dans la chaîne et qui est usally injustifiée hypothèse.Je downvoted juste pour que les gens n'ont jamais utilise cette approche. C'est mauvais pour la performance et la lisibilité, et le calee ne sait jamais à quoi s'attendre à partir d'un retour comme ça.
Je sais que cette approche est très mauvais comme la mesure de la performance est concerné, mais c'était juste une partie de la pratique que j'avais fait lorsque j'avais commencé avec la programmation. J'ai surtout travaillé sur julia et matlab où l'on peut revenir plusieurs vals comme, retour var1,var2, etc... Donc quand j'ai commencé avec JAVA, j'avais juste fait comme une partie de la pratique de l'. J'ai pensé qu'il serait bon travail, mais ensuite j'ai pensé qu'il donne de très mauvaises performances.
OriginalL'auteur Jay Dharmendra Solanki