- 浏览: 58356 次
- 性别:
- 来自: 成都
文章分类
最新评论
//该类是一个工具类,主要封装了对对象的equals,hashcode,compare和check 异常等方法。 //先看构造函数: //工具类,所以构造函数是私有的。防止反射创建对象所以抛出异常。 private Objects() { throw new AssertionError("No java.util.Objects instances for you!"); } //判断两个对象是否相等。 public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); } //判断两个对象是否深层相等。如果是对象则==是深层相等。如果是数组则数组中的每个元素== public static boolean deepEquals(Object a, Object b) { if (a == b) return true; else if (a == null || b == null) return false; else return Arrays.deepEquals0(a, b); } //返回对象的hashCode public static int hashCode(Object o) { return o != null ? o.hashCode() : 0; } //对数组中的对象返回hash码 public static int hash(Object... values) { return Arrays.hashCode(values); } //返回Object的toString public static String toString(Object o) { return String.valueOf(o); } //如果object是null返回默认的字符串 public static String toString(Object o, String nullDefault) { return (o != null) ? o.toString() : nullDefault; } //用给定的比较器比较两个对象 public static <T> int compare(T a, T b, Comparator<? super T> c) { return (a == b) ? 0 : c.compare(a, b); } //check NPE public static <T> T requireNonNull(T obj) { if (obj == null) throw new NullPointerException(); return obj; } //check NPE 并且给出指定的信息 public static <T> T requireNonNull(T obj, String message) { if (obj == null) throw new NullPointerException(message); return obj; } //判断一个对象是否是null public static boolean isNull(Object obj) { return obj == null; } //判断一个对象是否不为null public static boolean nonNull(Object obj) { return obj != null; } //check NPE 消息由指定的Supplier提供 public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier) { if (obj == null) throw new NullPointerException(messageSupplier.get()); return obj; }
发表评论
-
读java Optional 源码
2018-06-01 20:00 354//该类是jdk1.8新增的类,主要是为了解决NPE问题。 ... -
读AbstractStringBuilder源码
2017-10-16 16:56 321//该类是StringBuilder和StringBuff ... -
读String源码
2017-10-16 15:17 436//先看构造函数 public String() { ... -
java编译编码问题
2017-10-02 11:35 330最近由一个编码问题。让我对另一个编码问题产生了疑惑。 即我们在 ... -
在java服务端设置允许跨域请求
2017-08-29 10:58 2576//写一个filter对response进行过滤 pub ... -
java从数据库中查出来二次封装基于注解
2018-03-05 22:33 500实现类似于mybatis一对多关系和一对一关系: 上代码: ... -
java从数据库中查出来二次封装基于XML
2018-03-05 22:22 290实现类似于mybatis的配置关系一对多或者一对一的实现:基于 ... -
对abstract关键字的另一番理解
2017-03-22 16:10 235直接上代码: public abstract class An ... -
JVM垃圾回收历史
2017-02-17 16:30 285从网上看到一篇文章讲述垃圾回收的历史搬运过来: 为什么要有G ... -
看String源码的疑惑
2016-10-21 15:27 388今天看JDK String 源码有一段代码实在没想通,网上也没 ... -
java final关键字
2016-10-09 22:03 299final关键字的主要用于申明这个东西是不可变的。用于设计以及 ... -
java for each循环的原理
2016-10-09 21:18 422这篇介绍java for each原理的文章写的很棒,转过来m ... -
关于java内部类
2016-10-09 21:10 246关于java内部类,这篇文章写的非常好。尊重作者的劳动成果: ... -
java static关键字的作用
2016-10-05 17:23 223static关键字的设计初衷,套用thinking in ja ... -
关于反射泛型的封装
2016-09-11 16:16 390最近用到了jackson转json。看了下TypeRefere ... -
java到底是按照值传递还是引用传递
2016-07-25 19:45 360public class Transfer { pub ...
相关推荐
sqlite persistent objects iphone数据库操作源码sqlite persistent objects iphone数据库操作源码sqlite persistent objects iphone数据库操作源码
《Beginning Java Objects,2nd Edition》,一本非常不错的Java实践类书籍,这是该书的源码^_^
FME Objects Tutorial v7---源码,网络上找不到,vs2008环境下手动敲的
SuperMap Objects入门——C#.Net源码
SuperMap Objects入门——VC源码
基于网络上源码修改,功能单一,可供初学者学习使用,
BN093-PACS C#源码 无密码
为了完善《Beginning C# Objects中文版:概念到代码》,我们还写了标题为“下一步”的最后章节,它给出一些建议,让你在读完《Beginning C# Objects中文版:概念到代码》后,懂得如何继续自己的面向对象发现之旅。
2-77国外找你妹游戏模板Hidden Objects game - Starter Kit 1.232-77国外找你妹游戏模板Hidden Objects game - Starter Kit 1.232-77国外找你妹游戏模板Hidden Objects game - Starter Kit 1.232-77国外找你妹游戏...
一个采用反射进行数据对象的装载Filling Data objects using Reflection程序源码
BusinessObjects Enterprise XI 是支持全套制表、查询和分析功能的业务智能平台。它还为语义层、数据集成和安全性提供了平台级的支持。BusinessObjects Enterprise 为整个系统提供基于 Web 的全面管理和配置。此版本...
基于PythonDjango+MySQL的在线考试系统源码(毕设项目).zip基于PythonDjango+MySQL的在线考试系统源码(毕设项目).zip基于PythonDjango+MySQL的在线考试系统源码(毕设项目).zip基于PythonDjango+MySQL的在线考试系统...
sc2_objects.mssc2_objects.mssc2_objects.mssc2_objects.mssc2_objects.mssc2_objects.ms
Objects365 数据集,有图片和链接,数据集百度网盘链接,一共40多个G,亲测可以下载
SuperMap Objects .NET 整体介绍 SuperMap Objects .NET 开发基础 SuperMap Objects .NET 快速入门 SuperMap Objects .NET空间数据管理 SuperMap Objects .NET 空间数据查询
MyBatis For .NET 源码 开源项目iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。iBATIS提供的...
概述: 通过.NET对象时间一个简单的任务监视器。 要求:Windows 系统确保以管理员身份登录Windows,可实现对CPU和内存的使用状况的监视
学习编程的人都知道,阅读、剖析名家代码乃是提高水平的捷径。源码之前,了无秘密。大师们的缜密思维、经验结晶、技术思路、独到...演算法(algorithms) 第7 章 仿函式or 函式物件(functors, or function objects)
《#企业应用开发艺术CSLA.NET框架开发实战》(Expert C#2008 Business Objects)配套源码及例程csla-4.5.700。 CSLA .NET is a software development framework that helps you build a reusable, maintainable ...
Designer's Guide - provides complete information on how to use Designer to design, create, and manage Business Objects universes. Data Access Guide - describes connectivity workflows, parameters, and...