java - 在java中实例化接口(interface)

标签 java interface

我的理解是接口(interface)不能直接实例化,除非你定义一个实现该接口(interface)的匿名内部类。但令我惊讶和困惑的是,我看到一些代码似乎实例化了一个接口(interface)。 这是代码:

public final class SqlProviders
{
  private static boolean installed_;

   private static ThreadLocal<SqlAggregateProvider> fortaskInfo_
     = new ThreadLocal<TaskInfoProvider>();
}

 public interface TaskInfoProvider
 {
 int getTaskIndex();

 int getTaskCount();

 long getSessionId();

 long getStatementId();

 long getFunctionInstanceId();

 boolean isTaskInfoAvailable();

 void setTaskInfoAvailable(boolean available);
 }

谁能解释一下吗?

最佳答案

该代码未实例化 TaskInfoProvider 接口(interface)。它正在实例化通用类 ThreadLocal ...,并将接口(interface)作为类的通用类型参数。在此过程中没有创建 TaskInfoProvider 的(假设)实例....

显然,为了“设置本地线程的值”,您需要某个实现 TaskInfoProvider 接口(interface)的类的实例。但这不是此代码片段中发生的情况。

关于java - 在java中实例化接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073285/

相关文章:

java - Java 中的 for 循环 - 指数

c++ - 具有不可复制功能的接口(interface)

抽象基类中的 c# 属性

java - 我想滚动 ScrollView 而不是 WebView

java - 我可以从一个 jframe 的面板获取图形到另一个 jframe 吗? (网 bean )

c# - 在 C# 中实现 IUnknown

iphone - 基于#if评估的iOS接口(interface)声明

Swift、接口(interface)和抽象类

java - 如何检查控制台输入中是否写入了某些内容?

java - 这会被定义为堆排序的一种形式吗?