Method Zero

I need to convert multiple String values ​​to Integer, Boolean, etc. However, since the input values ​​may be empty, I cannot use a method Integer.valueOf(), for example. If the input is zero, I also need an output object, so I cannot use apache commons NumberUtils.toInt () . Is there an existing implementation or a better solution than just writing a utility method for each type (Integer, Boolean, etc.)?

Edit: add sample code

String maxAgeStr = settings.get("maxAge"); //settings is a map, which may or //may not contain maxAge constraints.setMaxAge(Integer.valueOf(maxAgeStr)); // need null safety here String enableActionStr = settings.get("enableAction"); constraints.setEnableAction(Boolean.valueOf(enableActionStr)); // need null safety here

+4
source share
3 answers

Use commons-lang the NumberUtils.createInteger () method :

NumberUtils.createInteger(null); // null
NumberUtils.createInteger("5"); // 5
+5
source

settings getter , :

public String getString(String name);

public int getInt(String name);

public boolena getBoolean(String name);

get():

public <T> T get(String name);

( ), , , . , .

, getter , :

public int getMaxAge();

public boolean isEnableAction();
+1

Binds Java 8:

Optional<String> maxAgeStr = Optional.ofNullable(settings.get("maxAge"));
maxAgeStr.ifPresent((str) -> { constraints.setMaxAge(Integer.valueOf(str)); });

Optional<String> enableActionStr = Optional.ofNullable(settings.get("enableAction"));
constraints.setEnableAction(Boolean.valueOf(enableActionStr.orElse(false))); 

Optional<String> enableActionStr = Optional.ofNullable(settings.get("enableAction"));
constraints.setEnableAction(Boolean.valueOf(enableActionStr.orElseGet(() -> i%2 == 0))); 
+1
source

All Articles