【JAVA】关于类型转换时parsexxx和valueOf的区别
错误:
At MongoDataSourceConfig.java:[line 53] DM_BOXED_PRIMITIVE_FOR_PARSING
修改前
@Override
@Bean(name = "mongoClient")
public MongoClient mongoClient() {
ServerAddress serverAddress = new ServerAddress(dbhost, Integer.valueOf(dbport));
MongoCredential credential = MongoCredential.createCredential(username, dbname, password.toCharArray());
MongoClient mongoClient = new MongoClient(serverAddress, Arrays.asList(credential));
return mongoClient;
}
修改后
@Override
@Bean(name = "mongoClient")
public MongoClient mongoClient() {
ServerAddress serverAddress = new ServerAddress(dbhost, Integer.parseInt(dbport));
MongoCredential credential = MongoCredential.createCredential(username, dbname, password.toCharArray());
MongoClient mongoClient = new MongoClient(serverAddress, Arrays.asList(credential));
return mongoClient;
}
Integer源码
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
valueOf():返回的是个包装类
parseInt():返回的就是基本数据类型