[ Foro de Java ]

Error de compilación en la llamada a una función.

04-May-2014 20:06
Angel Bravo
2 Respuestas

Tengo este código que compila y funciona sin problemas:

 
import java.io.*;
 
class Prueba {	
   public static void funcion (int numero) { 
      System.out.println("El valor es " + numero);
   }
 
   public static void main(String args [] ) {
      funcion(35);
      }
}
 


Lo que me falla es que si quiero pasar "numero" de int a byte para ahorrar memoria declarando "public static void funcion (byte numero) { " me sale éste error:

 
Prueba.java:11: error: method funcion in class Prueba cannot be applied to given types;
 
		funcion(35);
		^
  required: byte
  found: int
  reason: actual argument int cannot be converted to byte by method invocation conversion
1 error
 


¿De dónde sale este error?¿Cómo hago para que tome un valor Byte y no uno Int?


04-May-2014 23:52
Nacho Cabanes (+31)

Tu compilador da por sentado que ese dato es "un entero normal", a no ser que tú le digas "trata esto como un byte, porque yo sé que cabe".

Prueba a hacer

 
funcion( (byte) 35 ); 
 



05-May-2014 10:48
Angel Bravo

Funciona!! muchas gracias. También he podido comprobar que funciona no sólo con las funciones sino con los constructores.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)