2010-03-03 10 views
1

J'écris une application desktop et j2me. J'ai des instructions de débogage dans le programme. Actuellement, pour éviter ceux qui sont compilés j'utilise comme suit. Nous faisons cela pour réduire la taille du pot. (Spécifiquement pour mobile)passer des directives précompiler à javac?

ConstantFile.java 
Boolean ConstantFile.DebugEnabled = false; 

if(ConstantFile.DebugEnabled) { 
log.debug("msg"); 
} 

Mais ceci est un peu difficile à coder. Existe-t-il une alternative comme C où nous avons des directives pré-compilées. L'annotation peut-elle aider ici? Ou quelque chose d'autre que je devrais chercher?

Répondre

0

J'ai eu la réponse exacte que je voulais. Préprocesseur. Similaire à hatchetman82 suggéré, il y a une tâche wtkpreprocess disponible. Et c'est spécifiquement développé pour mobile. (Bien qu'il puisse être utilisé pour d'autres parties java aussi.) Et cela fonctionne parfaitement. Il commente la ligne pour que le code de byte reste plus léger.

2

Non, il n'y a pas de précompilage en Java, mais plutôt que d'utiliser le fichier de constantes que vous utilisez actuellement, essayez Log4j ou un autre package de journalisation prenant en charge une opération isDebugEnabled(). Cela évitera le codage en dur en faveur d'un fichier de configuration ou d'un argument VM.

0

Les annotations pourraient fonctionner, ou vous pourriez regarder AOP. AOP vous permettrait d'insérer automatiquement du code dans vos méthodes à des points spécifiques. De toute façon devrait vous obtenir ce que vous voulez.