sirve que para example dozerbeanmapper bean java integer

java - que - dozerbeanmapper



¿Cómo puedo saber si un entero de Java es nulo? (7)

Saludos,

Estoy tratando de validar si mi entero es nulo. Si es así, necesito pedirle al usuario que ingrese un valor. Mi fondo es Perl, así que mi primer intento se ve así:

int startIn = Integer.parseInt (startField.getText()); if (startIn) { JOptionPane.showMessageDialog(null, "You must enter a number between 0-16.","Input Error", JOptionPane.ERROR_MESSAGE); }

Esto no funciona, ya que Java está esperando una lógica booleana.

En Perl, puedo usar "existe" para verificar si los elementos hash / array contienen datos con:

@items = ("one", "two", "three"); #@items = (); if (exists($items[0])) { print "Something in /@items./n"; } else { print "Nothing in /@items!/n"; }

¿Hay alguna manera de esto en Java? ¡Gracias por tu ayuda!

Jeremias

PS Perl exists información.


De todos modos, no exists un SCALAR en Perl. El camino de Perl es

defined( $x )

y el equivalente de Java es

anInteger != null

Esos son los equivalentes.

exists $hash{key}

Es como el java

map.containsKey( "key" )

De tu ejemplo, creo que estás buscando

if (startIn! = null) {...


Esto debería ayudar.

Integer startIn = null; // (optional below but a good practice, to prevent errors.) boolean dontContinue = false; try { Integer.parseInt (startField.getText()); } catch (NumberFormatException e){ e.printStackTrace(); } // in java = assigns a boolean in if statements oddly. // Thus double equal must be used. So if startIn is null, display the message if (startIn == null) { JOptionPane.showMessageDialog(null, "You must enter a number between 0-16.","Input Error", JOptionPane.ERROR_MESSAGE); } // (again optional) if (dontContinue == true) { //Do-some-error-fix }


No creo que puedas usar "existe" en un entero en Perl, solo en colecciones. ¿Puede dar un ejemplo de lo que quiere decir en Perl que coincide con su ejemplo en Java?

Dada una expresión que especifica un elemento hash o un elemento de matriz, devuelve true si el elemento especificado en el hash o la matriz se ha inicializado alguna vez, incluso si el valor correspondiente no está definido.

Esto indica que solo se aplica a elementos hash o array.


Para mí, usar el método Integer.toString () funciona bien para mí. Puede convertirlo si lo desea si es nulo. Ejemplo a continuación:

private void setCarColor(int redIn, int blueIn, int greenIn) { //Integer s = null; if (Integer.toString(redIn) == null || Integer.toString(blueIn) == null || Integer.toString(greenIn) == null )


Prueba esto:

Integer startIn = null; try { startIn = Integer.valueOf(startField.getText()); } catch (NumberFormatException e) { . . . } if (startIn == null) { // Prompt for value... }


int s son tipos de valor; nunca pueden ser null En cambio, si el análisis falló, parseInt lanzará una NumberFormatException que debe capturar.


parseInt() solo lanzará una excepción si el análisis no se puede completar con éxito. En su lugar, puede usar Integers , el tipo de objeto correspondiente, lo que hace que las cosas sean un poco más limpias. Así que probablemente quieras algo más cercano a:

Integer s = null; try { s = Integer.valueOf(startField.getText()); } catch (NumberFormatException e) { // ... } if (s != null) { ... }

¡Cuidado si decides usar parseInt() ! parseInt() no admite una buena internacionalización, por lo que tiene que saltar a través de aún más aros:

try { NumberFormat nf = NumberFormat.getIntegerInstance(locale); nf.setParseIntegerOnly(true); nf.setMaximumIntegerDigits(9); // Or whatever you''d like to max out at. // Start parsing from the beginning. ParsePosition p = new ParsePosition(0); int val = format.parse(str, p).intValue(); if (p.getIndex() != str.length()) { // There''s some stuff after all the digits are done being processed. } // Work with the processed value here. } catch (java.text.ParseFormatException exc) { // Something blew up in the parsing. }