该DOC约java.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) …
目前,我知道如何使用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) 在我的控制器中:
$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
如何设置Tomcat自动重定向到"www"?如果用户输入我的域名,我希望如下:
mydomain.com
他将被重定向到:www.mydomain.com
我怎样才能获得两个工作日之间的工作日数java.util.Date,即不包括周末和假日?假期,我指的是法律认可的假期.它必须取决于国家,因为假期不同国家.
例如,2012-08-27 - 2012-08-24应该返回1而不是3因为周末介于两者之间.
我已经看过Jollyday和ObjectLab-Kit,但我不能让它们满足我的需要.我的意思是,他们都有很多有趣的方法,但找不到像getBusinessDaysCount(Date d1, Date d2)...
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) 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一种漂亮的方式编写方法体?在这个例子中,我只使用了四个,但它应该可以扩展到更多的布尔值.欢迎任何其他方式继续.
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?它存在吗?
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)
我不应该知道什么是该参数的类型o中method.我怎么能把它投射到Object[]数组中?
instanceof 因为参数可以是任何类型的数组,所以不能成为解决方案.
PS:我已经看过几个关于SO处理数组转换的问题,但没有人(还有?)你不知道数组的类型.