• [^] # Re: Fin de la pureté de Java

    Posté par . En réponse à la dépêche Java 8 et NetBeans 8 sont disponibles. Évalué à 3.

    Comme j'ai pas fait de Java depuis un bail, j'avais du mal à piger où se situait le problème. De ce que j'ai pu comprendre, le problème d'une « struct » Java serait le suivant :

    public class Toto {
     public int a;
     public char [] str = new char[MAX];
     public Titi t = new Titi();
    }

    Alors qu'en C on écrirait tout bêtement :

    struct toto_s {
     int a;
     char str[MAX];
     struct titi t;
    };

    Du coup j'en déduis que lorsqu'on parle des « structs à la C », on veut parler de la façon d'allouer de façon contiguë la mémoire (et ce, de façon garantie). J'ai bon ? Si oui, j'ai du coup j'ai une question subsidiaire : il me semble relativement trivial pour un compilateur d'estimer l'espace pris par un objet uniquement composé de données. Même "Titi.class" pourrait être annoté directement par le compilateur pour indiquer qu'il n'y a pas de méthodes définies.

    Du coup, a-t-on réellement besoin d'un « type » qui soit explicitement des structs « à la C » ?