I’d like to call a method that either returns false, or an integer. At the moment my code is:
int winningID = -1;
if((ID = isThereAWinner()) != -1) {
// use the winner's ID
} else {
// there's no winner, do something else
}
private int isThereAWinner() {
// if a winner is found
return winnersID;
// else
return -1;
}
I don’t like the if((ID = isThereAWinner()) != -1) bit as it doesn’t read very well, but unlike C you can’t represent booleans as integers in Java. Is there a better way to do this?
I would use something similar to Mat’s answer:
This class hides the implementation details of how you actually represent if there were no winner at all.
Then in your winner finding method:
And in your calling method:
It may seem a little bit too complex, but this approach is more flexible if there would be other result options in the future.