java - 传递 TimeUnits 并转换为毫秒
问题描述
如何为用户传递TimeUnit
例如分钟、秒、小时和数字的类创建 API,并在类内部保留毫秒值。
以下似乎是唯一的方法?
void someMethodDays(int numOfDays) {
this.longValue = TimeUnit.DAYS.toMillis(numOfDays);
}
void someMethodHour(int numOfHours) {
this.longValue = TimeUnit.HOURS.toMillis(numOfDays);
} etc
这是唯一的方法吗?每个值的方法具有参数的描述性名称?
解决方案
java.time.LocalDate
您可以在提供plus(long, TemporalUnit)
方法的知名且经过测试的类之后为您的类建模:
同样,您可以创建一个someMethod(long, TimeUnit)
方法,允许调用者传入任意数量的 any TimeUnit
。
void someMethod(long amount, TimeUnit unit) {
this.longValue = unit.toMillis(amount);
}
请注意,LocalDate
它还提供了用于添加某些常见时间单位的专用方法,例如plusDays()
. 这使调用者能够决定哪个对他们正在编写的代码更清晰:
LocalDate tomorrow = today.plusDays(1);
LocalDate tomorrow = today.plus(1, TimeUnit.DAYS);
推荐阅读
- audio-streaming - 无法将实时音频从麦克风流式传输到 PyAudio 中的远程端口
- python - Django如何过滤ManyToMany字段
- html - 尝试使用 get 从服务器获取数据并尝试在 Angular 组件的下拉框中使用它
- vuejs2 - 如何在没有 webpack 的情况下使用 Vue.Draggable CDN?
- azure - Azure AD B2C 是否支持目录中的多个用户池?
- python - 从python中的csv中删除多次出现
- python - 输入操作数 1 在其核心维度 0 中存在不匹配,具有 gufunc 签名 (n?,k),(k,m?)->(n?,m?)(大小 133896 与 133809 不同)
- java - 我需要帮助将所有对最短路径算法实现到给定的代码中
- mysql - 关于将用户名和域名与电子邮件地址分开的问题
- java - 在电子邮件应用 Java 中找不到主类