I haven't seen this compile error before, its very strange to me because normally Java compiler will unbox the Integer object into a int primitve type and use the addition.
I have compiled your file and look at the binary code:
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
0: new #6 // class java/lang/Integer
3: dup
4: iconst_5
5: invokespecial #7 // Method java/lang/Integer."<init>":(I)V
8: astore_1
9: aload_1
10: invokestatic #8 // Method wiggler:(Ljava/lang/Integer;)Ljava/lang/Integer;
13: astore_2
14: getstatic #4 // Field java/lang/System.out:Ljava/io/PrintStream;
17: aload_1
18: invokevirtual #2 // Method java/lang/Integer.intValue:()I
21: aload_2
22: invokevirtual #2 // Method java/lang/Integer.intValue:()I
25: iadd
26: invokevirtual #9 // Method java/io/PrintStream.println:(I)V
29: return
LineNumberTable:
line 11: 0
line 12: 9
line 13: 14
line 14: 29
}
I omitted the uninteresting binary code because the interessting part is in the main Method.
What i want to show you is that the Java Compiler will automatically unbox the Wrapper class into an int primitive type with the call Method java/lang/Integer.intValue:()I
in line 18 and 22 after that the addition will be executed.
So the other answers will no help neither.
I will suggest to use another Java Compiler respectively update your jdk
and try to compiler it on another machine.
You can also test you code with ideone and as you see it works perfectly.
http://ideone.com/9tJYf1