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

网站开发质量控制计划书电脑网站制作软件

网站开发质量控制计划书,电脑网站制作软件,电商网站建设最好的公司,禅城区网站建站网站jdk8运行jdk7的代码Java 7#xff0c;TreeSet和NullPointerException。 最近#xff0c;我尝试用Java 7编译一个用Java 6开发的项目。在执行测试过程中发生了很多有趣的事情#xff0c;在Java 6中使用Java 7平稳运行的测试失败了#xff01; 因此#xff0c;我必须理解为什… jdk8运行jdk7的代码 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;}} } 请注意字段名称没有空检查在我的项目中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.htmljdk8运行jdk7的代码
http://www.sadfv.cn/news/150675/

相关文章:

  • php高级网站开发现在哪个行业做网站需求多点
  • org做后缀的网站网页游戏排行榜2022前十名最新排名图片
  • 那个网站卖数据库wordpress 模板4列插件
  • 成都网站制作推来客网站系统好吗wordpress自动升级
  • 阜康市建设银行网站建设银行深圳培训中心网站
  • 西宁网站建设加q479185700html网站开发教程
  • 沽源网站建设案例软件开发流程图怎么做
  • 东莞网站改版移动网站怎么做
  • 海口网站制作推广公司网站建设的重要性
  • 主题网络图怎么设计seo怎么才能做好
  • ps上做网站简述网络营销的含义
  • 套模版做网站wordpress插件下载排行
  • 建网站收费个人网站模板之家
  • 找我家是做的视频网站好saas建站 cms
  • 做网站美工收费卓创源码网
  • 安全的网站建网页开发和网站开发一样吗
  • 投资网站php源码攀枝花 网站建设
  • 别人的网站是怎么做的微信小程序怎么关闭未成年模式
  • NET网站开发程序员网络科技公司网站
  • wordpress如何仿站网站主机的选择与优化
  • 汕头网站建设 网络服务奉贤网站建设公司
  • 昆山建设信息网站seo刷排名工具
  • 让你有做黑客感觉的网站校园网站建设计划书
  • 网站提示建设中网站主题模板下载
  • 网站挣钱怎么做查询网站备案查询
  • 网站域名 文件夹wordpress镶嵌网页
  • 悦然外贸建站上海怎么制作网站
  • 天津网站优化排名交换友情链接是什么意思
  • 上海建智建设人才培训中心网站c mvc网站开发实例
  • 吕梁推广型网站建设传奇手游排行榜前一