¿Cómo evitar que Java transfiera automáticamente un valor char a un int?

el compilador de java convierte automáticamente un valor char en un int, un código como este no generará un error:

public void foo(int i){
   // do something
}

char c = 'a';
foo(c);

¿Hay alguna forma de evitar que el compilador siempre envíe caracteres a int o arroje un error?

Respuesta 1

Por defecto, el compilador amplía la conversión para los tipos primitivos mencionados https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.2 .

Por lo tanto, convierte automáticamente char a int.

Puedes evitarlo usando Integer in foo. void foo(Integer i)

Respuesta: 2

Puede usar el contenedor classde inttipo como el parámetro del método como a continuación,

public void foo(Integer i){
   // do something
}

char c = 'a';
foo(c);

Esto mostrará un error de compilación.

Respuesta: 3

Como típicamente las clases se construyen proporcionando 0 o más parámetros iniciales, suena natural usar inyección de instancia. ¿Cuándo queremos vincular una clase a una subclase en lugar de una instancia de ...

Estoy tratando de usar el mecanismo de copia de seguridad programada de GAE pero sigo recibiendo un mensaje de error que cron.xml tiene un error de sintaxis. El mismo mensaje de error aparece usando las muestras de Google. Estoy usando SDK ...

IllegalStateException: no se encontró ninguna implementación de lenguaje y políglota en el classpath. Asegúrese de que truffle-api.jar esté en el classpath. Quería usar GraalVM en mi proyecto Java. Agregué esto ...

Tengo la aplicación Java EE. Necesito implementarlo en los servidores de aplicaciones Weblogic y JBoss. Por esa razón, tengo dos versiones de archivos web.xml para ambos servidores. Y mi objetivo principal es cambiar ...