2010-03-31 5 views
1

Est-ce que quelqu'un a déjà entendu parler de surcharger trop de classes en Java? Peut-être que ce problème est lié au développement de BlackBerry, mais je me demandais si c'était aussi un problème en Java.Erreur de génération Java/BlackBerry écrasant trop de classes

Disons que je donne les résultats suivants:

LabelField lblTitle = new LabelField(title) { 
    protected void paint(Graphics graphics) { 
     graphics.setColor(0x00FFFFFF); 
     graphics.clear(); 
     super.paint(graphics); 
    } 
}; 

LabelField lblSubTitle = new LabelField(releaseYear + ", " + rating) { 
    protected void paint(Graphics graphics) { 
     graphics.setColor(0x00FFFFFF); 
     graphics.clear(); 
     super.paint(graphics); 
    } 
}; 

Ce code fonctionne. Cependant, je l'ai remarqué qu'en remplaçant la méthode de peinture() à plusieurs reprises dans de nombreuses classes différentes tout au long de mon projet, je reçois l'erreur:

I/O Error: Cannot run program "jar": CreateProcess error=2, The system cannot find the file specified 

Ma seule solution est à ce jour pour nettoyer mon code GUI .. .minimisez-le et réutilisez-le. Peut-être que c'est bien que cela se produise, donc je peux être moins négligent à propos de la création de code GUI partout dans mes classes.

De toute façon, je me demandais si quelqu'un en avait déjà entendu parler auparavant. Si vous êtes intéressé à en savoir plus sur la question que je l'ai fait face, consultez le lien suivant:

BlackBerry Java Development Forums

Répondre

3

Il est peu probable que le nombre de fois que vous Override paint() donne l'erreur que vous rapportez. Il semble que l'erreur est due à une erreur de compilation (compilation) qui empêche la création du fichier jar. Vous devriez donc essayer de regarder de plus près les messages d'erreur signalés par votre compilateur/outil de construction.

Si cela ne fonctionne pas, vous pouvez essayer de trouver la cause de l'erreur en "divisant pour régner", comme suit: commentez tous les endroits où votre remplacement paint(). Si le problème disparaît, décommentez la moitié de ces remplacements et réessayez. Si le problème revient, commentez la moitié de cette moitié (et continuez récursivement). Sinon, si le problème persiste, commentez la 1ère moitié et décommentez la 2ème moitié (et continuez récursivement).

Même si vous avez plusieurs emplacements où vous remplacez paint(), ce type de recherche binaire converge assez rapidement. Par exemple, si paint() a été ignoré 256 fois, vous n'avez besoin que de huit itérations récursives pour trouver celle qui cause le problème.

Questions connexes