Integer.getInteger() 的使用 [duplicate]

Use of Integer.getInteger() [duplicate]

提问人:niks 提问时间:2/2/2016 更新时间:2/2/2016 访问量:1433

问:

根据定义

The java.lang.Integer.getInteger(String nm) method determines the integer value of the system property with the specified name.

有人可以用简单的术语来描述我的定义吗? 哪里需要 Integer.getInteger。我在哪里可以使用它。为什么下面的程序打印不同的输出。

   String str1 = "sun.arch.data.model";
   System.out.println(Integer.getInteger(str1,5));
   System.out.println(Integer.getInteger(str1));

   String str2 = "com.samples.data.model";
   System.out.println(Integer.getInteger(str2,5));
   System.out.println(Integer.getInteger(str2));

输出: 32 32 5 零

爪哇岛

评论


答:

3赞 nanofarad 2/2/2016 #1

Integer.getInteger(String) 方法声明如下:

第一个参数被视为系统属性的名称。可通过该方法访问系统属性。然后,使用 decode 支持的语法将此属性的字符串值解释为整数值,并返回表示此值的 Integer 对象。System.getProperty(java.lang.String)

如果没有具有指定名称的属性,如果指定的名称为空或 null,或者如果该属性没有正确的数字格式,则返回 null。

另一个方法具有两个参数,如果参数未设置或整数无效,则返回默认值而不是 null。

由于是具有数值的有效属性,因此其值将返回两次(为 32)。 不存在或非数字,因此将改为调用无效的处理逻辑,在指定时返回默认值 5,并在第二次调用中返回默认值,其中未指定默认值。sun.arch.data.modelcom.samples.data.modelnull

评论

0赞 niks 2/2/2016
我不明白互联网上的定义。现在我澄清了。但是我想知道System属性的整数值有什么用
2赞 Louis Wasserman 2/2/2016
@niks看起来你已经自己回答了这个问题:这是为了获得像这样的属性,它告诉你是在 32 位还是 64 位 JVM 中运行。sun.arch.data.model
1赞 nanofarad 2/2/2016
@niks 作为另一个示例,声明内存限制或超时的系统属性也将是数字。