当前位置: 首页 > news >正文

网站维护细则网站开发流程ppt

网站维护细则,网站开发流程ppt,视频剪辑培训大概多少钱,上海做什么工作最赚钱Java 7#xff0c;TreeSet和NullPointerException。 最近#xff0c;我尝试用Java 7编译一个用Java 6开发的项目。在执行测试过程中发生了很多有趣的事情#xff0c;在Java 6中使用Java 7平稳运行的测试失败了#xff01; 因此#xff0c;我必须理解为什么#xff0c;这就… Java 7TreeSet和NullPointerException。 最近我尝试用Java 7编译一个用Java 6开发的项目。在执行测试过程中发生了很多有趣的事情在Java 6中使用Java 7平稳运行的测试失败了 因此我必须理解为什么这就是我发现的内容……首先要了解的上下文在该项目中我或多或少有一个简单的Hibernate Entity如下所示。 package com.marco.test; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import org.hibernate.validator.NotNull; Entity Table(...) public class ABean {...private String name;Column(name name, nullable false)NotNullpublic String getName() {return name;}public void setName(String name) {this.name name;} } 请注意字段“名称”为nullable false并标有NotNull 。 这是为了告诉Hibernate在用户尝试创建或将此列更新为Null的情况下使验证失败。 我也有该实体的比较器。 该比较器使用名称字段来比较Entity这只是项目中的简化版本当然我不基于字符串长度来订购Bean package com.marco.test; import java.util.Comparator; public class ABeanComparator implements ComparatorABean {Overridepublic int compare(ABean o1, ABean o2) {if (o1.getName().length() o2.getName().length()) {return 1;} else if (o1.getName().length() o2.getName().length()) {return -1;} else {return 0;}} } 请注意字段名称上没有null检查在我的项目中Hibernate已经在处理它。 现在我有一个测试它创建一个空的Entity并将其存储到TreeSet中然后执行其他我们在这里并不真正关心的东西。 测试的开始类似于以下代码 package com.marco.test; import java.util.SortedSet; import java.util.TreeSet; public class SortedTestTest {public static void main(String[] args) {ABean aBean new ABean();SortedSetABean sortedSet new TreeSetABean(new ABeanComparator());sortedSet.add(aBean);} } 如果我使用Java 6运行此程序一切正常。 但是对于Java 7我有一个NullPointerException。 Exception in thread main java.lang.NullPointerExceptionat com.marco.test.ABeanComparator.compare(ABeanComparator.java:9)at com.marco.test.ABeanComparator.compare(ABeanComparator.java:1)at java.util.TreeMap.compare(TreeMap.java:1188)at java.util.TreeMap.put(TreeMap.java:531)at java.util.TreeSet.add(TreeSet.java:255)at com.marco.test.SortedTestTest.main(SortedTestTest.java:14) 为什么 这就是为什么 public V put(K key, V value) {EntryK,V t root;if (t null) {compare(key, key); // type (and possibly null) checkroot new Entry(key, value, null);size 1;modCount;return null;} 在Java 7中当第一个Object添加到TreeSet时 如果t null将执行与自身的比较comparekeykey。 然后compare方法将调用比较器如果有的话并且name属性将具有NullPointerException。 // Little utilities/*** Compares two keys using the correct comparison method for this TreeMap.*/final int compare(Object k1, Object k2) {return comparatornull ? ((Comparable? super K)k1).compareTo((K)k2): comparator.compare((K)k1, (K)k2);} 提出的问题多于答案 如果您知道TreeSet中的对象是第一个也是唯一的为什么还要进行比较 我的猜测是他们想做的是运行一个简单的Null检查。 为什么不创建适当的null检查方法 没有答案 为什么要浪费CPU和内存运行不需要的比较 没有答案 为什么将一个对象与其自身进行比较comparekeykey 没有答案 这是Java 6中TreeSet的put方法您可以看到比较已被注释掉。 public V put(K key, V value) {EntryK, V t root;if (t null) {// TBD:// 5045147: (coll) Adding null to an empty TreeSet should// throw NullPointerException//// compare(key, key); // type checkroot new EntryK, V(key, value, null);size 1;modCount;return null;} 您看到评论了吗 向空的TreeSet添加null会引发NullPointerException。 因此只需检查key是否为null就不要进行无用的比较 结论 始终尝试分析您使用的代码因为即使在jdk中也存在错误代码 参考 即使在jdk中 我们的JCG合作伙伴 Marco Castigliego 也会在“ 删除重复并修复不良名称”博客中提供不良代码 。 翻译自: https://www.javacodegeeks.com/2013/04/even-in-the-jdk-there-is-bad-code.html
http://www.pierceye.com/news/599259/

相关文章:

  • 网站诊断高端网站建设 杭州
  • 营销网站案例北京公司建设网站
  • 网站建设全域云网店美工的职责有哪些
  • seo优化网站的手段亚洲国产中文域名查询
  • 网络营销网站源码学校网站建设评审会议通知
  • 品牌网站升级创意设计椅子
  • 海口网站制作公司商标注册网上查询
  • 世界上前端做的最好的网站2345浏览器官网网址
  • 做模板网站赚钱吗网站建设需要多少内存
  • C语言网站开发pdf专科网站开发简历
  • 静态网站怎么做优化网站建设用什么软件
  • 如何建设移动端网站物联网设计
  • 赣州网站设计哪里好天河网站建设多少钱
  • 做lol直播网站设计一个公司网站多少钱
  • 电商网站 投诉百度录入网站
  • 如何做产品网站网页论坛的网站开发项目
  • 如何在记事本中做网站链接冰雪蜜城店加盟费多少
  • 中山网站建设公司专业建站公司设计
  • 汽车手机网站制作一个具体网站的seo优化
  • 手机网站的页面大小wordpress下载主题博客
  • 创客贴设计网站官网高端网站制作网址
  • 衡水网站建设选哪家信用网站系统建设方案
  • 网站全屏代码如何做网站外链
  • 中国人自己的空间站哪里有免费的网站模板下载 迅雷下载 迅雷下载软件
  • 网站建设預算网站的新闻模块怎么做
  • 浙江省建设厅查询官方网站外贸业务员
  • 乐清公司网站建设高端网站有哪些
  • 网站备案状态查询漳州北京网站建设
  • wordpress oss ftp湖北百度seo排名
  • 深圳福田站弹簧机东莞网站建设