eleven81 eleven81 - 1 year ago 120
Java Question

Creating a "logical exclusive or" operator in Java


Java has a logical AND operator.

Java has a logical OR operator.

Java has a logical NOT operator.


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;


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

Answer Source

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);


false ^ false = false
false ^ true = true
true ^ false = true
true ^ true = false
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download