我对java使用接口有疑问。我最初认为我们只能在给定的类中实现接口。但是在这个代码示例中,
System.out.println(LocalDateTime.of(2016,5,19,14,8,0).toInstant(ZoneOffset.UTC).toEpochMilli());
System.out.println(Timestamp.valueOf(LocalDateTime.of(2016,5,19,14,8,0)).getTime());
Calendar c = Calendar.getInstance(TimeZone.getTimeZone(ZoneId.of("UTC")));
c.set(2016,5,19,14,8,0);
System.out.println(c.getTime().getTime());
为什么这是一个有效的答案?
public interface InterW {
}
public interface InterX<T> {
}
public class ClassY {
}
public class ClassZ {
}
类型参数可以扩展接口吗?
为什么这个错了?
public class ClassB<T extends InterX<ClassY>> extends ClassZ
implements InterW {
}
答案 0 :(得分:3)
请参阅Oracle Documentation on Bounded Type Parameters
特别是 -
要声明有界类型参数,请列出类型参数的名称,然后是extends关键字,后跟其上限...... 请注意,在此上下文中,extends用于一般意义上表示“扩展”(如在类中)或“实现”(如在接口中)。
答案 1 :(得分:0)
接口是否可以扩展?
接口只能扩展接口。实际上,接口可以扩展多个接口。
public interface Interface4扩展了Interface1,Interface2, Interface3 {// methods}
回到你的第二个问题
And why is this one wrong?
`public class ClassE<T implements InterW> extends ClassZ {
}`
如用户2615897所述
要声明有界类型参数,请列出类型参数的名称, 接下来是extends关键字,后跟上限..... 请注意,在此上下文中,extends用于一般意义上 “扩展”(如在类中)或“实现”(如在接口中)。
根据JVM,在上限的上下文中,无论是使用extends还是implements,两者都做同样的事情。但是JVN允许语法extends
避免混淆