eleven81 eleven81 - 4 months ago 20
Java Question

Creating a "logical exclusive or" operator in Java

Observations:



Java has a logical AND operator.

Java has a logical OR operator.

Java has a logical NOT operator.




Problem:



Java has no logical XOR operator, according to sun. I would like to define one.




Method Definition:



As a method it is simply defined as follows:

public static boolean logicalXOR(boolean x, boolean y) {
return ( ( x || y ) && ! ( x && y ) );
}





Method Call:



This method is called in the following way:

boolean myVal = logicalXOR(x, y);





Operator Usage:



I would much rather have an operator, used as follows:

boolean myVal = x ^^ y;





Question:



I can't find anything on how to go about defining a new operator in Java. Where should I start?

Answer

Java does have a logical XOR operator, it is ^ (as in a ^ b).

Apart from that, you can't define new operators in Java.

Edit: Here's an example:

public static void main(String[] args) {
	boolean[] all = { false, true };
	for (boolean a : all) {
		for (boolean b: all) {
			boolean c = a ^ b;
			System.out.println(a + " ^ " + b + " = " + c);
		}
	}
}

Output:

false ^ false = false
false ^ true = true
true ^ false = true
true ^ true = false
Comments