IFDEF como no Delphi

7 respostas
bandrade

em java tem algum recurso como o IFDEF do Delphi?? Estou programando para diferentes celulares e queria usar filtros para que o tamanho final da aplicacao fique menor…

vc sabe de algo do tipo, ou como implementar isso?? uso o jbuilderX…

valeus

7 Respostas

pcalcado

Olá,

Java não tem pré-processador, então você pode utilizar uma ferramenta de terceiros ou criar scripts de build para criar versões diferentes dos seus aplicativos.

[]s

bandrade

alguem sabe de alguma ferramenta q faca isso ou coisa parecida??

teh, valeud

T

Outra forma é fazer o seguinte: normalmente o compilador já elimina código (mas não rotinas!) se você fizer um if() com uma condição constante. Mas obviamente não atende a todos os seus requisitos. Você provavelmente vai ter de customizar um script de build (build.xml do Ant, por exemplo) para gerar apenas as classes que seu aplicativo precisa para um determinado ambiente.

Digamos que você tenha uma parte de seu código que deve funcionar em Nokia mas não em Motorola:

static final boolean MOTOROLA = false;
static final boolean NOKIA = true;

if (MOTOROLA) {
    código Motorola();
}

if (NOKIA) {
    código Nokia();
}

Você precisa mexer duas linhas no fonte acima (que funciona só para Nokia) para recompilar para Motorola, é claro, mas onde aparece MOTOROLA no código acima, será ignorado pelo compilador, já que a condição é “false” em tempo de compilação.

pcalcado

Achei isso aqui também:

http://www.developer.com/java/other/article.php/3293431

Mas, sinceramente, creio que a melhor opção seja em termos de ferramenta de build. Condições de compilação são um inferno apra manter…

[]s

bandrade

vcs q sabem MUITO mais q eu…

um ofuscador cortaria esse codigo nao usado??

o artigo eh bom + fica muito dificil pra colocar todos os meus programas em XML… ); … eh muito codigo…

achei esses artigos aki tb,
http://www.sys-con.com/story/?storyid=36226&DE=1


o 2o eh melhorzim… (;

vou ter q sofrer + um pouco com isso… + tah valendo… alguem de vcs pode me explicar pq java nao tem Conditional Compilation???

valeus

kuchma

Porque em tese isso nao deveria ser necessario - afinal, Java eh pra ser multi-plataforma.

Mas na pratica a teoria eh diferente. :smiley:

Brincadeira. O J2ME esta evoluindo - futuramente esse tipo de problema nao devera acontecer. Enquanto isso…

Marcio Kuchma

bandrade

enquanto isso eh só lálá… ((;

Criado 13 de dezembro de 2004
Ultima resposta 13 de dez. de 2004
Respostas 7
Participantes 4