我们有需要从Java7升级到Java8的代码。一大堆这样的片段:
public class TestJava8 {
private static void TestIntegerConversion(){
Map<String, Object> m = new HashMap<>();
System.out.println(m.get("status") != 0);
}
public static void main(String[] argvs){
TestIntegerConversion();
}
}
我们利用了m.get(“status”)!=0
返回false
的优点,仅当键“status”有一个int值,但它不是0时。如果“状态”为0或被省略,它将返回true
。这是所需的行为。
您可以创建一个静态实用函数,它显式地执行您需要的操作。如果您需要全局更改此状态逻辑,它也会很有帮助。
/**
* Returns true if value is null or a non-integer or a non-zero integer.
*/
public static boolean isNonZeroOrMissingStatusValue(final Object value) {
return !isZeroStatusValue(value);
}
/**
* Returns true if value is an integer zero.
*/
public static boolean isZeroStatusValue(final Object value) {
return (value instanceof Integer) // this will be false if value is null
&& ((Integer) value).intValue() == 0;
}
...
private static void TestIntegerConversion(){
Map<String, Object> m = new HashMap<>();
System.out.println(isNonZeroOrMissingStatusValue(m.get("status")));
}
问题内容: 是否有更好的方法来计数Java8中的int出现次数 问题答案: 尝试:
我知道这些接口用于对集合中的对象进行排序。但我怀疑这两者的真正区别。我读到的一个事实是,如果要比较两个对象而不使用当前对象,请使用Compariable(此)。 但我的问题是即使使用比较器,我们也会比较相同的对象类型。 这里真正的区别是什么。我很困惑。假设下面的例子, 如果我使用比较器,我会让一个类实现比较器,而不是这个。年龄,它有人。年龄那么这里有什么不同呢? 我不知道Collections.s
描述 (Description) java.lang.reflect.Array.get(Object array, int index)方法返回指定数组对象中索引组件的值。 如果对象具有基本类型,则该值自动包装在对象中。 声明 (Declaration) 以下是java.lang.reflect.Array.get(Object array, int index)方法的声明。 public st
以及为什么我在这个中得到..
描述 (Description) java.lang.reflect.Field.getInt(Object obj)方法获取静态或实例int字段的值。 声明 (Declaration) 以下是java.lang.reflect.Field.getInt(Object obj)方法的声明。 public int getInt(Object obj) throws IllegalArgumen
描述 (Description) 此方法将此String与另一个Object进行比较。 语法 (Syntax) 以下是此方法的语法 - int compareTo(Object o) 参数 (Parameters) 这是参数的细节 - O - 要比较的对象。 返回值 (Return Value) 如果参数是一个按字典顺序排列等于该字符串的字符串,则值为0; 如果参数是按字典顺序大于此字符串的字符