public interface TimeClient {
void setTime(int hour,int minute, int second);
void setDate( int day, int month, int year);
void setDateAndTime( int day, int month, int year,
int hour, int minute, int second);
LocalDateTime getLocalDateTime();
}
public class SimpleTimeClient implements TimeClient {
private LocalDateTime localDateTime;
public SimpleTimeClient(){
localDateTime = LocalDateTime.now();
}
@Override
public void setTime( int hour, int minute, int second) {
LocalTime localTime = LocalTime.of(hour, minute, second);
LocalDate localDate = LocalDate.from(localDateTime);
localDateTime = LocalDateTime.of(localDate,localTime);
}
@Override
public void setDate( int day, int month, int year) {
LocalDate localDate = LocalDate.of(day, month, year);
LocalTime localTime = LocalTime.from(localDateTime);
localDateTime = LocalDateTime.of(localDate, localTime);
}
@Override
public void setDateAndTime( int day, int month, int year, int hour, int minute, int second) {
LocalDate localDate = LocalDate.of(day, month, year);
LocalTime localTime = LocalTime.of(hour, minute, second);
localDateTime = LocalDateTime.of(localDate, localTime);
}
@Override
public LocalDateTime getLocalDateTime() {
return localDateTime;
}
@Override
public String toString() {
return localDateTime.toString();
}
public static void main(String[] args) {
TimeClient timeClient = new SimpleTimeClient();
System.out.println(timeClient.toString());
}
}
public interface TimeClient {
void setTime(int hour,int minute,int second);
void setDate(int day,int month,int year);
void setDateAndTime(int day,int month,int year,int hour, int minute,int second);
LocalDateTime getLocalDateTime();
//新增的方法
ZonedDateTime getZonedDateTime(String zoneString);
}
public class SimpleTimeClient implements TimeClient {
private LocalDateTime localDateTime;
...
ZonedDateTime getZonedDateTime(String zoneString){
return ZonedDateTime.of(getLocalDateTime(), getZoneId(zoneString));
}
static ZoneId getZoneId (String zoneString) {
try {
return ZoneId.of(zoneString);
} catch (DateTimeException e) {
System.err.println( "Invalid time zone: " + zoneString +
"; using default time zone instead." );
return ZoneId.systemDefault();
}
}
}
public interface TimeClient {
void setTime( int hour, int minute, int second);
void setDate( int day, int month, int year);
void setDateAndTime( int day, int month, int year,
int hour, int minute, int second);
LocalDateTime getLocalDateTime();
static ZoneId getZoneId (String zoneString) {
try {
return ZoneId.of(zoneString);
} catch (DateTimeException e) {
System.err.println( "Invalid time zone: " + zoneString +
"; using default time zone instead." );
return ZoneId.systemDefault();
}
}
//默认方法
default ZonedDateTime getZonedDateTime(String zoneString) {
return ZonedDateTime.of(getLocalDateTime(), getZoneId(zoneString));
}
}
public static void main(String[] args) {
TimeClient timeClient = new SimpleTimeClient();
System.out.println(timeClient.toString());
System.out.println(timeClient.getZonedDateTime( "test" ));
}
//1.不去管默认方法
public interface AnotherTimeClient extends TimeClient{
}
Method[] declaredMethods = AnotherTimeClient. class .getMethods();
for (Method method:declaredMethods){
System.out.println(method.toString());
}
//output:
//public default java.time.ZonedDateTime xyz.johntsai.lambdademo.TimeClient.getZonedDateTime(java.lang.String)
//重新声明默认方法,使之变为抽象方法
public interface AbstractZoneTimeClient extends TimeClient{
@Override
ZonedDateTime getZonedDateTime(String zoneString);
}
Method[] methods = AbstractZoneTimeClient. class .getMethods();
for (Method method:methods){
System.out.println(method.toString());
}
//output:
//public abstract java.time.ZonedDateTime xyz.johntsai.lambdademo.AbstractZoneTimeClient.getZonedDateTime(java.lang.String)
//3.重新定义默认方法
public interface HandleInvalidZoneTimeClient extends TimeClient {
default ZonedDateTime getZonedDateTime(String zoneString){
try {
return ZonedDateTime.of(getLocalDateTime(), ZoneId.of(zoneString));
} catch (DateTimeException e) {
System.err.println( "Invalid zone ID: " + zoneString +
"; using the default time zone instead." );
return ZonedDateTime.of(getLocalDateTime(),ZoneId.systemDefault());
}
}
}
public interface TimeClient {
// ...
static public ZoneId getZoneId (String zoneString) {
try {
return ZoneId.of(zoneString);
} catch (DateTimeException e) {
System.err.println( "Invalid time zone: " + zoneString +
"; using default time zone instead." );
return ZoneId.systemDefault();
}
}
default public ZonedDateTime getZonedDateTime(String zoneString) {
return ZonedDateTime.of(getLocalDateTime(), getZoneId(zoneString));
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有