Double 类是 Java 中包装 double 基本类型的类。
Double类的构造方法
Double提供了几种构造方法来创建Double对象,以下是可用的构造方法:
构造方法 | 使用说明 |
---|---|
Double(double value) | 构造一个表示double参数的Double对象 |
Double(String str) | 构造一个表示Double对象,表示用字符串表示的double类型的浮点值 |
public static void main(String[] args) {
Double d1 = new Double(123);
Double d2 = new Double(12.3);
Double d3 = new Double(-1.23);
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
}
123.0
12.3
-1.23
12.3
-1.23
public static void main(String[] args) {
Double d1 = new Double("456");
Double d2 = new Double("-4.567");
Double d3 = new Double("+8.9");
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
Double d = new Double("1A");
}
使用字符串创建对象时,需要确保字符串本身都是数字值:
456.0
-4.567
8.9
java.lang.NumberFormatException: For input string: “1A”
-4.567
8.9
java.lang.NumberFormatException: For input string: “1A”
valueOf() 创建Double对象
返回表示指定的Double值的Double实例。如果不需要新的Double实例,则通常应优先使用此方法,而不是构造方法new Double(d),因为此方法可能通过缓存经常请求的值来显著提高空间和时间性能。
✍方法声明
public static Double valueOf(Double d);
- 📥入参:d为一个指定的浮点值。
- 🪐返回值:返回d的double实例。
✍方法声明
返回指定字符串的Double值的Double对象。如果字符串不包含可解析的数字,则抛出异常。
public static Double valueOf(String s) throws NumberFormatException;
- 📥入参:s为一个指定要解析的String。
- 🪐返回值:保存用String参数表示的值的Double对象。
- 🐛抛出异常NumberFormatException:如果字符串不包含可解析的数字。
📝总结
在 Java 9 及以后的版本中,直接使用 Double 类的构造方法创建对象已被标记为过时(deprecated),推荐使用 Double.valueOf(double d) 或 Double.valueOf(String s) 方法来创建 Double 对象,以避免潜在的弃用风险。
使用构造方法创建 Double 对象时,应该注意处理可能出现的 NumberFormatException,并且在可能的情况下,优先使用 valueOf 静态工厂方法,因为它们更加灵活,也更不容易出错。