IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Object C# en Java ?


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 26
    Points
    26
    Par défaut Object C# en Java ?
    Bonjour,

    Je suis nouveau sur le langage Java et j'ai quelques soucis, je n'ai pas codé depuis longtemps mais avais "un peu" l'habitude du C#.

    Je suis actuelement à la recherche d'un type pouvant contenir tout type de variable, referencé par des int ou String si possible. Je crois qu'en C# ce que je cherche est "Object".

    Je cherche à pouvoir faire ceci par exemple (soit yxy ce que je cherche):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    yxy a = new yxy();
    a.add("bool",false);
    a.add("string","le nom est a");
    a.add("EditText",edtxt1);
     
    yxy b = new yxy();
    b.add("bool",true);
    b.add("nom","b");
    b.add("EditText",edtxt2);
     
    try_on(a);
    try_on(b);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void try_on(yxy instant_yxy)
     
    string instant_string = "nom";
    Log.e("my_app",instant_yxy.get(instant_string));//will output : b
    Je sais que ceci est basique et doit être dans les tutoriels mais j'ai cherché et n'ai pas trouvé.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    En Java la classe Object est à la base de la hiérarchie, donc tu peux y stocker ce que tu veux dedans.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Object a = "toto";
    Object b = 2;
    System.out.println(a);
    System.out.println(b); 
     
    //Donne
     
    toto
    2
    A noter que ça marche pour tous type de variable. En fait l'appel à System.out.println() va implicitement faire appel à la méthode toString() de l'objet ( qui peut donc avoir été redéfinie dans des classes différentes ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    public class A {
     
    	public A(){}
     
    	public String toString(){ return "toto"; }
     
    }
     
    public class B {
     
    	public B(){}
     
    	public String toString(){ return "tata"; }
     
    }
     
    Object a = new A();
    Object b = new B();
     
    System.out.println(a);
    System.out.println(b);
     
    // donne
     
    toto
    tata
    Cependant si il n'y a pas de raison particulière qui t'oblige à utiliser un Object, il est toujours préférable de typer ses variables.



    Cdt.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta réponse, je vais essayer (j'ai déjà essayé mais j'ai peut être pas fais comme il faut.) C'est donc comme en C# alors...

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Euh ouais, enfin vis-à-vis de l'exemple, Object on peut pas faire des add() dessus.

    Object c'est le type auquel on peut assigner n'importe quoi. Mais on ne peut pas lui "ajouter" n'importe quoi.
    L'exemple se ferait plutôt avec Map<String, Object> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Map<String, Object> a = new HashMap<String, Object>();
    a.put("bool",false);
    a.put("string","le nom est a");
    a.put("EditText",edtxt1);
     
    Map<String, Object> b = new HashMap<String, Object>();
    b.put("bool",true);
    b.put("nom","b");
    b.put("EditText",edtxt2);
     
    try_on(a);
    try_on(b);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void try_on(Map<String, ?> map)
     
    String string = "nom";
    Log.e("my_app", map.get(string));//will output : b

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/05/2012, 11h37
  2. Problème de conversion de java.util.Date Object to a java.sql.Date Object
    Par amine1980 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 02/12/2011, 11h18
  3. java.lang.Object javax.media.Buffer.getData()
    Par keil dans le forum Multimédia
    Réponses: 3
    Dernier message: 28/07/2011, 13h41
  4. [Débutant] java.lang.object
    Par bonnefr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/05/2004, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo