当我通过JDK 7时,我发现它java.util.concurrent.RunnableFuture<V>有一个run方法.我想知道在接口中重复相同的run方法签名的重要性是什么时候它已经扩展了Runnable.
package java.util.concurrent;
public interface RunnableFuture<V> extends Runnable, Future<V> {
/**
* Sets this Future to the result of its computation
* unless it has been cancelled.
*/
void run();
}
Run Code Online (Sandbox Code Playgroud) 我观察到java.util.Objects有一个抛出AssertionError的构造函数.
* @since 1.7
*/
public final class Objects {
private Objects() {
throw new AssertionError("No java.util.Objects instances for you!");
}
...
Run Code Online (Sandbox Code Playgroud)
这是一个静态实用程序类,因此不需要实例.
我理解的一个可能原因是,开发人员正在尝试确保不创建此类的实例.作为任何人可以调用此构造函数的唯一方法是通过反射.
有没有其他理由拥有这种构造函数?