Inconsistent Java operators

Look at this example:

public class OperatorTest {
	public static void main(String[] args) {
		Integer i1 = 1;
		i1 = i1 + + + + + 1;
		System.out.println(i1);
		int i2 = 1;
		i2 = i2 + + + + + 1;
		System.out.println(i2);
		String s = "s";
		s = s + + + + "t";
		System.out.println(s);
	}
}

What is wrong with this code? Does it compile?
Well… only line number 10 is problem here. Why? Because for integer variables operators ‘+’ and ‘-‘ are working fine with this syntax.

So what about String concatenation? The key word here is concatenation. We are not adding Strings, we are calling overridden operator – the evil thing that Java always wanted to avoid.

In my option this is not consistent specially when you look at Integer handling. It should be used in the same way as String, or String should be used is the same way as Integer… whatever, it should be the SAME way.