- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 java.util.concurrent.TimeUnit
类,我发现了一些有趣的约定,我不知道,我不明白是关于枚举的,我已经举了一个例子我自己的,我希望有人能向我解释..
一个带有方法的简单接口(interface)。
interface MyInterface{public String concate(String... a);}
后来我创建了一个枚举
public enum Enumerations implements MyInterface
{
STRINGUTILITIES{},
BEANENUMERATION{},
NANOSECONDS
{//sample methods
public long toNanos(long d) { return d; }
public long toMicros(long d) { return d; }
public long toMillis(long d) { return d; }
public long toSeconds(long d) { return d; }
public long toMinutes(long d) { return d; }
public long toHours(long d) { return d; }
public long toDays(long d) { return d;}
public long convert(long d) { return d;}
int excessNanos(long d, long m){return 13;}
};
@Override public String concate(String... a){throw new AbstractMethodError();}
我需要实现 concate
方法对我来说OK
我的第一个问题是。
STRINGUTILITIES{},
BEANENUMERATION{},
NANOSECONDS{}
是枚举吗?我认为实际上是嵌套枚举..
我主要关心的是,如果一个comment
concate method 在外部枚举Enumerations
STRINGUTILITIES{},
BEANENUMERATION{},
NANOSECONDS{}
提示他们没有实现该方法。似乎 3 个内部枚举在某种程度上扩展了外部枚举,如果外部枚举正在实现该方法,则对他们来说没问题。
像这样
public enum Enumerations implements MyInterface
{
STRINGUTILITIES{},
BeanEnumeration{},
NANOSECONDS
{
public long toNanos(long d) { return d; }
public long toMicros(long d) { return d; }
public long toMillis(long d) { return d; }
public long toSeconds(long d) { return d; }
public long toMinutes(long d) { return d; }
public long toHours(long d) { return d; }
public long toDays(long d) { return d;}
public long convert(long d) { return d;}
int excessNanos(long d, long m){return 13;}
};
}
如果外部枚举未实现该方法,而我在每个嵌套枚举上实现了该方法,则 OK
。
如果像这样评论
嵌套枚举的其他问题
interface MyInterface{public String concate(String... a);}
public enum Enumerations implements MyInterface
{
@Override public String concate(String... a){return "java";}
}
显示错误..
请有人指导解释如何使用和命名这种方法..
非常感谢..
最佳答案
任何对象在声明时都可以有一个非静态初始化 block :
Object a = new Object() {
public long toNanos(long d) {
return d;
}
};
枚举也不异常(exception)。
block 中的方法必须覆盖/实现引用类型(上面的对象)的类/接口(interface)中的方法才能被调用。请注意,TimeUnit 初始化 block 中的所有方法都会覆盖 TimeUnit 本身中的方法。
关于java.util.concurrent.TimeUnit 类设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21163630/
我正在使用ExecutorService.invokeAll(Callable, timeout, TimeUnit)方法 在提交给 ExecutorService 的每个 Callable 中,我都
我注意到 TimeUnit 类的一个奇怪行为,所以我创建了这个最小的示例来重现它。 long differenceInDays; Calendar c1 = Calendar.getInstance(
我正在尝试制作一个基本的倒数计时器。老实说,我通过教程了解了其中的大部分内容,所以我并不完全理解它的工作原理,但我已经尝试了几个小时来寻找答案,但我不知道还能去哪里寻找。 我在 TimeUnit 之后
我正在尝试研究一些方法和对能够每周使用一次的操作/“命令”的响应(防止垃圾邮件)。我唯一的问题是如何将我的java时间设置为一周。这就是我所拥有的: public static long displa
一 点睛 sleep 是一个静态方法,它有两个重载方法,其中一个需要传入毫秒数,另外一个需要传入毫秒数和纳秒数。 sleep 的方法 public static native void sleep(l
JavaAPI:https://docs.oracle.com/javase/8/docs/api/index.html 1 TimeUnit api:https://docs.oracle.com/
JavaAPI:https://docs.oracle.com/javase/8/docs/api/index.html 1 TimeUnit api:https://docs.oracle.com/
我正在使用 Python selenium 3.0.1 版,其中似乎没有说 driver.implicitly_wait(10) 我们现在必须说 driver.implicitly_wait(10,
是否有可能像 TimeUnit 这样的枚举作为参数传递给方法?我正在编写一个 Java 方法,该方法需要 long 作为持续时间参数,并且很好奇是否有更好的方法来做到这一点。基本上,我想将一些东西传递
如何为用户传递 TimeUnit 的类创建 API,例如分钟、秒、小时和一个数字,并在类内部保留毫秒值。 以下似乎是唯一的方法? void someMethodDays(int numOfDays)
我创建了这样的方法,其中有 2 个输入。 first is type (e.g. 'd', 'h') second is value (e.g. "15", "0.5") 我创建了将它转换为分钟的函数
我想将 TimeUnit 转换为 seconds 或 hours ,我问了很多但没有得到满意的答案。我读过http://developer.android.com/reference/java/uti
我正在尝试实现 Future.get(long, TimeUnit)在 TimeUnit.timedWait(Object, long) 方面. 目前尚不清楚如何使用 TimeUnit.timedWa
我试图计算两个时间戳的天数之差,TimeUnit 为我返回了完全错误的结果。 这是我的代码: long ts = 1522242239952L; long now = 1527274162820L;
我只是想知道,为什么 Java 的 TimeUnit 类中缺少一些枚举? 实际上最大时间单位是 DAY,而我想使用 WEEK、YEAR... 最佳答案 TimeUnit.DAYS 常量表示 24 小时
我希望将任意值从毫秒转换为秒,我的首选是 TimeUnit.MILLISECONDS.toSeconds。但是它返回一个长整数,因此将 1 毫秒转换为 0 秒而不是 0.001 秒。 阅读时the d
#include #include #include using namespace std; class TimeUnit { public: TimeUnit(int m, int
如何使用 Simple XML 库(版本 2.6.5/2.6.6)序列化 java.util.concurrent.TimeUnit? 这是我想要序列化的类: @Root(name="settings
我正在使用 java.util.concurrent.TimeUnit 类,我发现了一些有趣的约定,我不知道,我不明白是关于枚举的,我已经举了一个例子我自己的,我希望有人能向我解释.. 一个带有方法的
我正在尝试计算两天之间的天数差。由于某种原因,比较 01-03-2013 和 01-04-2013 给出结果 30,比较 01-03-2013 和 31-03-2013 也是如此 Calendar c
我是一名优秀的程序员,十分优秀!