Me deparei com a seguinte situação exemplo:
boolean condicao = true;
if(condicao)
{
if(1 > 2)
{
//...
}
}
else
{
if(1 < 2)
{
//...
}
}
Até ai blz, mas aí surgiu uma dúvida onde para mim se existisse, iria resumir esse código muito bem:
boolean condicao = true;
if(1 ((condicao) ? > : <) 2)
{
//.....
}
sei que este código não existe, algo do tipo uma variável recebendo um operador hehe, mas existe algo no java parecido com isso que resumiria o primeiro código citado?
não sei se to pirando muito ahahh.
Veja se desta forma resume o código como você quer:
boolean condicao = true;
if(condicao ? (1>2) : (1<2)){
//...
}
[quote=al.barbosa]Veja se desta forma resume o código como você quer:
boolean condicao = true;
if(condicao ? (1>2) : (1<2)){
//...
}
[/quote]
Sim isso resume, na verdade foi um código exemplo né, digamos que os valores 1 ou 2 viriam de objetos com vários getters, fircaria uma condição extensa em uma linha.
A dúvida mesmo seria uma condição onde definiria qual operador utilizar dentro de outra condição, se é que me entende? ehhe
é uma dúvida que praticamente sei que a resposta: “não existe isso”, seria mais como uma idéia que para mim iria facilitar, não sei se você concorda comigo?
Você pode fazer isso com interfaces e usando o padrão Strategy. É rebuscado, mas se sua condição fosse mais complexa, talvez valesse a pena.
Veja:
[code]public interface Comparison {
boolean compare(int obj1, int obj2);
}
public class Less implements Comparison {
@Override
public boolean compare(int obj1, int obj2) {
return obj1 < obj2;
}
}
public class More implements Comparison {
@Override
public boolean compare(int obj1, int obj2) {
return obj1 > obj2;
}
}
[/code]
O código ficaria assim:
boolean condicao = true;
Comparison c = condicao ? new More() : new Less();
if(c.compare(1,2)) {
//...
}