darkkakashi49
Messages postés5Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention 7 mars 2007
-
7 mars 2007 à 19:25
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
7 mars 2007 à 21:53
Bonjour ayant une application a réalisé lors de ma requête à la base PostGreSql, celle-ci me retourne un Object[][] pour pouvoir l'utilisé il faudrait que je puisse récupérer le paramètre qu'il contient (int,string ,...) et j'aimerais savoir savoir si il existe une méthode donnant le type d'un object.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 7 mars 2007 à 21:44
Salut oui et non
enfait tu ne gère pas le fait que la première fois tu as resultat[i] instanceof Object[] donc ton code ne matche pas je te conseil plus (pour rappel tu as dis 'me retourne un Object[][]') :
Object[][] resultat = sqlServer.getResult();
obejcts(resultat);
public void objects(Object[] objs) {
for (int i = 0; i < objs.length; i++) {
Object specifier = objs[i];
if (specifier instanceof Object[]){
System.out.println("L'objet est de type Object[] : " + specifier);
objects((Object[]) specifier);
}else{
if(specifier instanceof Double){
System.out.println("L'objet est de type Double : " + specifier);
}else if(specifier instanceof String){
System.out.println("L'objet est de type String : " + specifier);
}else if(specifier instanceof Boolean){
System.out.println("L'objet est de type Boolean : " + specifier);
}else if(specifier instanceof Float){
System.out.println("L'objet est de type Float : " + specifier);
}else if(specifier instanceof Integer){
System.out.println("L'objet est de type Integer : " + specifier);
}
}
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 7 mars 2007 à 19:53
Salut,
il existe
Object o = ....;
if(o instanceof String)
System.out.println("instance of String");
else if(o instanceof Integer)
System.out.println("instance of Integer");
ou encore
Object o = ...;
if(String.class.isInstance(o))
System.out.println("instance of String");
else if(Integer.class.isInstance(o))
System.out.println("instance of Integer");
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
darkkakashi49
Messages postés5Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention 7 mars 2007 7 mars 2007 à 20:06
Je suis d'accord cela fonctionne pour un "Object variable;" mais pour ce qui est d'un tableau d'Object ou aors je m'y suis mal pris. Merci de votre compréhesion
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 7 mars 2007 à 20:44
Salut,
teste ce petit bout de code je pense qu'il devrait t'eclairer un chouilla (la méthode objects utilise la récursivitée) :
import java.util.Random;
import javax.swing.JFrame;
public class Test {
public static void main(String[] args) {
Object [][]objs = {
{ new Random().nextDouble(), "a", new Random().nextBoolean(), new Random().nextFloat(), new JFrame("Frame 1") },
{ new Random().nextDouble(), "b", new Random().nextBoolean(), new Random().nextFloat(), new JFrame("Frame 2") },
{ new Random().nextDouble(), "c", new Random().nextBoolean(), new Random().nextFloat(), new JFrame("Frame 3") },
{ new Random().nextDouble(), "d", new Random().nextBoolean(), new Random().nextFloat(), new JFrame("Frame 4") },
{ new Object[]{ new Random().nextDouble(), "d", new Random().nextBoolean(), new Random().nextFloat(), new JFrame("Frame 5") }}
};
objects(objs);
}
public static void objects(Object[] objs) {
for (int i = 0; i < objs.length; i++) {
Object specifier = objs[i];
if (specifier instanceof Object[]){
System.out.println("L'objet est de type Object[] : " + specifier);
objects((Object[]) specifier);
}else{
if(specifier instanceof Double){
System.out.println("L'objet est de type Double : " + specifier);
}else if(specifier instanceof String){
System.out.println("L'objet est de type String : " + specifier);
}else if(specifier instanceof Boolean){
System.out.println("L'objet est de type Boolean : " + specifier);
}else if(specifier instanceof Float){
System.out.println("L'objet est de type Float : " + specifier);
}else if(specifier instanceof JFrame){
System.out.println("L'objet est de type JFrame : " + ((JFrame)specifier).getTitle());
}
}
}
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
darkkakashi49
Messages postés5Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention 7 mars 2007 7 mars 2007 à 21:29
J'ai essayer comme tu m'a dit et j'ai incorporé à mon code sa donnerait sa tu es d'accord avec ?
Object[] resultat = sqlServer.getResult();
for (int i = 0; i < resultat.length; i++)
{
Object specifier = resultat[i];
if(specifier instanceof Double)
{
System.out.println("L'objet est de type Double : " + specifier);
}else if(specifier instanceof String)
{
System.out.println("L'objet est de type String : " + specifier);
}else if(specifier instanceof Boolean)
{
System.out.println("L'objet est de type Boolean : " + specifier);
}else if(specifier instanceof Float)
{
System.out.println("L'objet est de type Float : " + specifier);
}
else if(specifier instanceof Integer)
{
System.out.println("L'objet est de type Integer : " + specifier);
}
}