Type Object

Résolu
darkkakashi49 Messages postés 5 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 7 mars 2007 - 7 mars 2007 à 19:25
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 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.

Merci de vos réponse

Le katana est la plus puissante des armes .....

9 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
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 ..."

WORA
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
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 ..."

WORA
0
darkkakashi49 Messages postés 5 Date d'inscription lundi 5 février 2007 Statut Membre Derniè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

Le katana est la plus puissante des armes .....
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
7 mars 2007 à 20:14
Salut,

ba tu parses le tableau

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
darkkakashi49 Messages postés 5 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 7 mars 2007
7 mars 2007 à 20:17
Désolé pour mon ignorance mais je débute en java et je vois pas ce que tu veux dire par parses
Le katana est la plus puissante des armes .....
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
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 ..."

WORA
0
darkkakashi49 Messages postés 5 Date d'inscription lundi 5 février 2007 Statut Membre Derniè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);
            }
    }

Le katana est la plus puissante des armes .....
0
darkkakashi49 Messages postés 5 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 7 mars 2007
7 mars 2007 à 21:47
Ca fonctionne à la perfection comme ca.
Je te remercie pour ton aide et ta patience. Merci

Le katana est la plus puissante des armes .....
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
7 mars 2007 à 21:53
Salut,

mais de rien et au plaisir sur le forum (ou l'espace sources && tutos)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous