Compiler does not object to add an int value to a byte because it performs an explicit cast : Cast Operators « Operators « SCJP






public class MainClass {
  public static void main(String[] argv) {
    byte b = 0;
    b += 27;
    b = b + 27;
    b = (byte) (b + 27);

  }
}
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Type mismatch: cannot convert from int to byte

	at MainClass.main(MainClass.java:5)








2.4.Cast Operators
2.4.1.The Cast Operator (type) is for explicit conversion of a type.
2.4.2.Cast Operator converts numeric values from one type to another or to change an object reference type.
2.4.3.Compiler does not object to add an int value to a byte because it performs an explicit cast