小编sp0*_*00m的帖子

java.util.Set.contains(Object o)的奇怪行为

DOCjava.util.Set.contains(Object o)说:

当且仅当此set包含元素e时返回true(o == null?e == null:o.equals(e)).

也就是说,这是一个POJO(你可以看到,我覆盖了它的equals方法):

public class MonthAndDay {

    private int month;
    private int day;

    public MonthAndDay(int month, int day) {
        this.month = month;
        this.day = day;
    }

    @Override
    public boolean equals(Object obj) {
        MonthAndDay monthAndDay = (MonthAndDay) obj;
        return monthAndDay.month == month && monthAndDay.day == day;
    }

}
Run Code Online (Sandbox Code Playgroud)

那么,为什么以下代码打印false而不是true

Set<MonthAndDay> set = new HashSet<MonthAndDay>();
set.add(new MonthAndDay(5, 1));
System.out.println(set.contains(new MonthAndDay(5, 1)));
// prints false
Run Code Online (Sandbox Code Playgroud)

一个解决方案是重写contains(Object o) …

java contains equals set

7
推荐指数
2
解决办法
9412
查看次数

Java注释的Maven-properties-filtering-like?

目前,我知道如何使用Maven进行这种过滤:

的pom.xml

<properties>
    <foo>bar</foo>
</properties>
Run Code Online (Sandbox Code Playgroud)

app.properties

foo=${foo}
Run Code Online (Sandbox Code Playgroud)

但是有可能使用Maven,Spring或其他任何工具进行这种过滤吗?

MyClass.java

@MyAnnotation("${foo}") // ${foo} should get replaced at compile time
public void getData() {
    return data;
}
Run Code Online (Sandbox Code Playgroud)

java spring filtering properties maven

7
推荐指数
1
解决办法
1257
查看次数


通过ng-click调用$ scope的方法:由IE执行两次

在我的控制器中:

$scope.homeAction = function() {
  console.log("HomeAction");
};
Run Code Online (Sandbox Code Playgroud)

在我看来:

<button ng-click="homeAction()">call homeAction()</button>
Run Code Online (Sandbox Code Playgroud)

单击按钮时,Chrome和Firefox会按预期执行该方法,但IE会执行两次.知道为什么吗?

这是一个再现问题的plunker:http://plnkr.co/edit/pedZKjIVGDAYfMl0ZphJ .

javascript internet-explorer angularjs angularjs-ng-click ionic-framework

7
推荐指数
1
解决办法
1771
查看次数

自动为我的webapp添加"www"子域

如何设置Tomcat自动重定向到"www"?如果用户输入我的域名,我希望如下:

mydomain.com

他将被重定向到:www.mydomain.com

java tomcat web-applications url-rewriting

6
推荐指数
2
解决办法
2663
查看次数

两个日期之间的差异,包括仅工作日(即不包括周末和假日)

我怎样才能获得两个工作日之间的工作日数java.util.Date,即不包括周末和假日?假期,我指的是法律认可的假期.它必须取决于国家,因为假期不同国家.

例如,2012-08-27 - 2012-08-24应该返回1而不是3因为周末介于两者之间.

我已经看过JollydayObjectLab-Kit,但我不能让它们满足我的需要.我的意思是,他们都有很多有趣的方法,但找不到像getBusinessDaysCount(Date d1, Date d2)...

java datediff date

6
推荐指数
1
解决办法
9638
查看次数

两种不同类型的两个空对象的比较

public void m1(Integer f) {
    ...
}

public void m1(Float f) {
    ...
}

public void main() {
    m1(null); // error: the method m1(Integer) is ambiguous for the type Main
    m1((Integer) null); // success
}
Run Code Online (Sandbox Code Playgroud)

鉴于上面的例子中,我们可以承认在某些方面null被打出来.那么为什么要打印以下行true?当然o1,o2两者都没有价值(即null),但它们不是同一类型(Integervs Float).我首先想到false会被打印出来.

Integer i = null;
Object o1 = (Object) i;
Float f = null;
Object o2 = (Object) f;
System.out.println(o1 == o2); // prints true

// in …
Run Code Online (Sandbox Code Playgroud)

java comparison null types

6
推荐指数
1
解决办法
1025
查看次数

计算n个布尔值的"真实"数量

Boolean a, b, c, d;
Run Code Online (Sandbox Code Playgroud)

我想算一下trues的数量,每个结果都应该有自己的关联动作.也许是这样的:

int result = getResult(a, b, c, d);
switch (result) {
    case 0: break;
    case 1: break;
    case 2: break;
    case 3: break;
    default: break;
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何以getResult一种漂亮的方式编写方法体?在这个例子中,我使用四个,但它应该可以扩展到更多的布尔值.欢迎任何其他方式继续.

java boolean count

6
推荐指数
2
解决办法
6127
查看次数

1l为long,1f为float,1d为double,字节怎么样?

1l为long,1f为float,1d为double,字节怎么样?

long l = 1l;
float f = 1f;
double d = 1d;
// byte b = 1?;
Run Code Online (Sandbox Code Playgroud)

什么相当于byte?它存在吗?

java byte casting initialization

6
推荐指数
1
解决办法
1万
查看次数

将对象转换为数组

public static void main(String[] args) throws Exception {
    int[] a = new int[] { 1, 2, 3 };
    method(a);
}

public static void method(Object o) {
    if (o != null && o.getClass().isArray()) {
        Object[] a = (Object[]) o;
        // java.lang.ClassCastException: [I cannot be cast to [Ljava.lang.Object;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不应该知道什么是该参数的类型omethod.我怎么能把它投射到Object[]数组中?

instanceof 因为参数可以是任何类型的数组,所以不能成为解决方案.

PS:我已经看过几个关于SO处理数组转换的问题,但没有人(还有?)你不知道数组的类型.

java arrays reflection casting

6
推荐指数
2
解决办法
648
查看次数