Nesse exemplo o código compila e roda normalmente. Mas por haver perda de precisão na linha com comentário C, pra mim deveria não compilar. Por qual motivo funcionou então?
public class Test {
public static void main(String[] args) {
System.out.printf("%s",12); //A
System.out.printf("%d",new Integer(321)); //B
System.out.printf("%d",(short)(byte)(double) 127); //C
}
}