Cuidado com os 'gotchas'!

5 respostas
C

Essa é sinistra :

public class MyClass{
      public void printByte( byte b )
      {
           System.out.println( "o valor do byte é :"+b);
      }
      public void printShort( short s )
      {
           System.out.println( "o valor do short é :"+s);
      }
      public static void main( String [] args )
      {
           MyClass obj = new MyClass();
            obj.printByte( 127 );
            obj.printShort( 32000 );
      }
  }

Qual é a saida deste programa ?

Divirtam-se
Claudio Gualberto.

5 Respostas

Ironlynx

Acho q dará erro de compilação em printByte e printShort(vc esta passando 2 inteiros).

marciolx

javac MyClass.java MyClass.java:13: printByte(byte) in MyClass2 cannot be applied to (int) obj.printByte( 127 ); ^ MyClass.java:14: printShort(short) in MyClass2 cannot be applied to (int) obj.printShort( 32000 ); ^ 2 errors

maxguzenski

é, isso nao compila…

pra compilar tem que fazer

obj.printByte( (byte)127 ); 
obj.printShort( (short)32000 );

dai sai normal eu acho

marciolx

“maxguzenski”:
é, isso nao compila…

pra compilar tem que fazer

obj.printByte( (byte)127 ); 
obj.printShort( (short)32000 );

dai sai normal eu acho

compila e imprime:

o valor do byte é :127
o valor do short é :32000

Ocorre que os literais inteiros são sempre do tipo int

marciolx

uma lista de tricks, traps e gotchas

http://www.javaranch.com/certfaq.jsp#q13
http://www.javaranch.com/maha/Resources/gotchas_1_.html
http://www.firstsql.com/java/gotchas/
http://mindprod.com/newbie.html

Criado 4 de junho de 2003
Ultima resposta 6 de jun. de 2003
Respostas 5
Participantes 4