myers80
Messages postés3Date d'inscriptionmercredi 17 décembre 2003StatutMembreDernière intervention30 juillet 2007
-
30 nov. 2004 à 10:36
ncottin
Messages postés17Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention 4 février 2005
-
2 févr. 2005 à 17:16
Bonjour à tous les développeurs,
je débute en java.
je souhaite créer une méthode qui me retournera une valeur pouvant être de différents types (ResultSet ou int)
J'ai essayé comme type de retour Object, ... rien à faire le compilateur indique toujour une erreur (incompatible types, found : int)
Existe-t-il une solution ? Je vous remercie d'avance...
Je veux montre un bout de code dans le cas ou je ne m'exprimerai pas correctement ;-)
public ? SQLExec(Connection maconnection, String marequete)
{
try
{
// Create a result set containing all data from my_table
Statement stmt = maconnection.createStatement();
String TypeRequete = marequete.substring(1,6);
if (TypeRequete == "SELECT") {
ResultSet resultat = stmt.executeQuery(marequete);
return resultat;
}else if ((TypeRequete "UPDATE") || (TypeRequete "DELETE")) {
int nbenr = stmt.executeUpdate(marequete);
return nbenr;
}
else { System.out.println("Requete inconnue !"); }
}
catch (SQLException e){}
return null;
}
ncottin
Messages postés17Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention 4 février 2005 2 févr. 2005 à 17:16
Oulà, ça m'a l'air compliqué ton source, là !
Si je repars du début :
"je souhaite créer une méthode qui me retournera une valeur pouvant être de différents types (ResultSet ou int)"
La surcharge de méthode n'est pas applicable ici, car elle n'est valab le que lorsque les paramètres diffèrent.
Tu peux renvoyer un "Object", mais c'est un peu crado. Je te donnes quand même comment le faire (***note : j'espère que mes balises "pre" seront interprétées...***). L'astuce est de passer par la classe "Integer" pour renvoyer un entier encapsulé dans un objet :
Object maMethode(boolean intReturn) {
if (intReturn) {
return new Integer(100);
}
ResultSet rs = new resultSet();
// Inititalisation de rs
// ...
return rs;
}
Pour savoir ce que t'a renvoyé l'appel de "maMethode" :
Pour finir, "int" est un type de données et non un objet ! C'est pour cela que tu trouveras des classes correspondant aux types de base (int -> Integer, boolean -> Boolean, etc.).
@+,
-- Nath
NB : "transtyper une fonction", à priori, ça ne veut pas dire grand chose...