A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

原文代码位于:Java API 1.6 中的 java.util.concurrent.locks中。大家在学到“多线程通信时”也许会遇到。
代码如下:
   final Lock lock = new ReentrantLock();
   final Condition notFull  = lock.newCondition();
   final Condition notEmpty = lock.newCondition();
其中,Lock 和 Condition都是接口类型。我们知道接口类不可以创建对象。那么怎么解释第二行和第三行代码呢。
第一行代码是:多态,这个好理解。
查文档得出:Lock有一个返回值类型为Condition的方法:newCondition,返回绑定到此lock的Condition对象。这一句话我们可以得出两个结论:1.接口类可以作为返回值类型(之前百度上有一些人在疑惑这个问题);2.接口虽然不可以创建实例对象,但是是不允许用 new 这种方法建立;而此处为lock下的newCondition方法。

因为这个问题困扰了一个晚上,分享给大家,如果我的理解出现了偏差,还希望大家能指出来。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马