我对c#方法重载和调用解析有一个疑问.
假设我有以下C#代码:
enum MyEnum { Value1, Value2 }
public void test() {
method(0); // this calls method(MyEnum)
method(1); // this calls method(object)
}
public void method(object o) {
}
public void method(MyEnum e) {
}
Run Code Online (Sandbox Code Playgroud)
请注意,我知道如何使它工作,但我想知道为什么一个int(0)值调用一个方法而另一个(1)它调用另一个方法.这听起来很尴尬,因为两个值具有相同的类型(int),但它们对于不同的方法是"链接的".
我在将Timestamp对象转换为joda的LocalTime时遇到问题.
见下面的例子:
public static void main(String[] args) {
Timestamp t = Timestamp.valueOf("1111-11-11 00:00:00");
System.out.println(t); //-- prints '1111-11-11 00:00:00.0'
System.out.println(new LocalDate(t)); //-- prints '1111-11-17'
Calendar calendar = Calendar.getInstance();
calendar.setTime(t);
System.out.println(LocalDate.fromCalendarFields(calendar)); //-- prints '1111-11-11'
}
Run Code Online (Sandbox Code Playgroud)
我无法确定为什么'new LocalDate(t)'会导致'1111-11-17'.任何人都可以帮助我吗?
我在使用joda-time-hibernate填充我的bean类型为LocalDate的属性时注意到这个"问题".