[Java] Object.toString

Fermé
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 8 févr. 2012 à 12:50
choubaka Messages postés 39421 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 23 mars 2025 - 8 févr. 2012 à 13:16
Bonjour,

Je voudrais obtenir pour un objet quelconque le résultat de la méthode toString de Object, et ce même si celle-ci est redéfinie. Je voudrais donc un résultat de la forme "classe@reference".

J'ai essayé en invoquant directement la méthode toString, mais cela ne fonctionne pas :

public class Test
{
    public static String reference(Object obj)
    {
        try 
        {
            return (String) Object.class.getDeclaredMethod("toString").invoke(obj);
        }
        catch (Exception e)
        {
            return null;
        }
    }
    
    public static void main(String...args)
    {
        String s = "toto";
        System.out.println(reference(s)); // "toto" :(
    }
}

Plus généralement, je m'interroge sur la possibilité en Java de court-circuiter la redéfinition d'une méthode, pour appeler la méthode initialement définie par une de ses classes mères...

Merci d'avance pour toute suggestion ;-)
A voir également:

2 réponses

choubaka Messages postés 39421 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 23 mars 2025 2 104
8 févr. 2012 à 12:58
bonjour

Pour appeler une méthode d'une classe supèrieure, il faut utiliser "Super.xxxx()

xxx étant le nom de la méthode
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
8 févr. 2012 à 13:07
Quand on construit soi même la classe fille je suis d'accord, en particulier pour les constructeurs, mais comment faire quand elle est déjà créée . Par exemple ici j'ai la classe String qui hérite de Object, mais je ne peux pas faire de super sur mon String, et même si j'héritais de String (ce qui n'est pas possible vu qu'elle est final), le super me renverrait les méthodes de String, et pas d'Object. Et je ne parle même pas de A extends B extends C extends D... comment récupérer D à partir de A ?
0
choubaka Messages postés 39421 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 23 mars 2025 2 104
8 févr. 2012 à 13:16
vu comme ça ... en effet
0
choubaka Messages postés 39421 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 23 mars 2025 2 104
8 févr. 2012 à 13:03
c'est ce que j'utilise souvent en Swing mais je ne sais pas tester ici, si ça marcue avec toString
0