最近在读一些源码的时候突然发现了一个很神奇的东西,它的原始形态是这样的: 在这行代码中,BlockingDeque.BlockingQueue和Deque是三个接口.刚发现这个问题时,我是十分吃惊的,因为即使在<Thinking in Java>中也没有提到接口之间的继承.所以我立即把这个疑问提交到了stackoverflow上面. 这个问答的过程十分简单,在这个链接上面的:http://stackoverflow.com/questions/22498245/one-uncertainty-…
JAVA中使用到继承就会有两个无法回避的缺点: 打破了封装性,迫使开发者去了解超类的实现细节,子类和超类耦合. 超类更新后可能会导致错误. 继承打破了封装性 关于这一点,下面是一个详细的例子(来源于Effective Java第16条) public class MyHashSet<E> extends HashSet<E> { private int addCount = 0; public int getAddCount() { return addCount; } @Over…
方法compareTo()比较此对象与指定对象的顺序.如果该对象小于.等于或大于指定对象,则分别返回负整数.零或正整数.返回整数,1,-1,0:返回1表示大于,返回-1表示小于,返回0表示相等. 普通的Integer 类型key进行比较: public class java_ListMapSort { public static void main(String[] args) { List<Map<String, Object>> list = new ArrayList<…
修改页面点击提交时报如下异常: org.hibernate.TransientObjectException: The given object has a null identifier: com.school.entity.Classmgr 其发生的交互异常时,点击编辑某条记录,编辑完成点击提交时出现提交失败.主要原因是: 修改页面中没有传递主键,导致提交时服务器无法确定你修改了哪个记录.所以,其解决方法是: <s:hidden name="cls.id"></s…