`

读Objects源码

    博客分类:
  • java
阅读更多
//该类是一个工具类,主要封装了对对象的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;
    }




 
分享到:
评论

相关推荐

    ASP读报系统网站源码

    ASP读报系统很可能通过ADO(ActiveX Data Objects)与数据库进行交互,如SQL Server或Access。ADO提供了一套统一的接口来操作不同类型的数据库,实现数据的查询、添加、修改和删除。在ASP中,通常使用ADODB....

    亲自测试可以用使用的邮箱源码模仿网易邮箱的源码php+mysql源码开发的源代码.rar

    它可能使用了AJAX(Asynchronous JavaScript and XML)技术来实现无刷新的页面更新,比如收发邮件、标记已读未读等操作。此外,JavaScript也可能用于表单验证,提高用户体验,避免无效或错误的数据提交到服务器。 ...

    SSH框架整合实战教程----读书笔记(七)源码

    3. **DAO(Data Access Objects)**:这些类封装了对数据库的操作,通常由Spring管理,并通过Hibernate的Session接口进行数据交互。 4. **Service层**:服务层组件处理业务逻辑,它们调用DAO来实现对数据的增删改查...

    易语言光速服务器读数据库内容源码.rar

    【标题】"易语言光速服务器读数据库内容源码"主要涵盖了两个核心概念:易语言和数据库操作。易语言是中国本土开发的一种高级编程语言,它以其直观易懂的语法设计,使得初学者能够快速上手编程。而"光速服务器"在这里...

    ADO操作Access示例源码(70kb)

    本示例源码提供了一种使用ActiveX Data Objects(ADO)与Microsoft Access交互的方法,这在开发Windows应用程序时非常常见。以下是关于ADO操作Access的一些关键知识点: 1. **ActiveX Data Objects (ADO)**:ADO是...

    基于PHP的读怪小说连载系统源码.zip

    【标题】"基于PHP的读怪小说连载系统源码.zip" 涉及的主要知识点是PHP编程语言在构建网络应用,特别是小说连载平台中的运用。PHP是一种广泛使用的开源服务器端脚本语言,特别适合Web开发,可以嵌入到HTML中使用。这...

    易语言源码易语言SQLSERVER查询分析器源码.rar

    这涉及到易语言的数据库访问接口,如ODBC(Open Database Connectivity)或ADO(ActiveX Data Objects),这些接口提供了与各种数据库系统通信的标准方式。 在设计查询分析器时,开发者可能采用了以下关键知识点: ...

    易语言万象数据库辅助工具源码

    【易语言】是这款源码的核心编程语言,它的设计思想是“易学、易用、易读、易写”。易语言的语法简洁明了,其基本结构是“对象+方法”的形式,易于理解和掌握。它支持多种数据类型,如整型、字符串、数组等,并且有...

    企业网PHP格式源码

    使用良好的命名规范、注释和代码结构可以使代码更易读、易维护。此外,配合版本控制系统如Git,可以方便团队协作和版本回溯。 10. **部署与自动化** 企业网PHP源码通常会包含部署脚本或配置文件,以便快速在...

    ASP源码—志翔电子读报系统.zip

    【ASP源码—志翔电子读报系统】是一款基于ASP技术构建的电子读报平台,主要服务于网络媒体、教育机构和个人用户,提供便捷的在线阅读和管理报纸资源的服务。该系统可能包含以下关键知识点: 1. **ASP(Active ...

    php版留言簿精品源码

    通常,PHP会使用MySQL作为后端数据库,通过PDO(PHP Data Objects)或者mysqli扩展来实现与数据库的交互。在这个留言簿系统中,数据库可能包含了如`gbook`这样的表,存储留言ID、用户名、留言内容、时间戳等信息。...

    Wrance图片系统目录直读版 v1.0 -ASP源码.zip

    Wrance图片系统目录直读版 v1.0的源码提供了学习ASP和动态网站开发的机会,特别是对于那些希望了解如何处理静态资源和构建简单Web应用的初学者来说,这是一个很好的实践案例。同时,源码分析也提醒我们,直接使用...

    ssm在线读书与分享论坛源码数据库演示.zip

    通过XML或注解的方式,可以将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 4. **数据库设计**:项目包含了完整的数据库设计,这通常包括数据表的结构、字段定义、主键外键...

    源代码-2345网址导航源码.zip

    - 数据管理:如果源码包含数据库连接,可能使用了ADO (ActiveX Data Objects) 来与数据库交互,如SQL Server或Access。 - 动态内容生成:ASP可以动态生成页面内容,例如根据用户登录状态显示个性化链接。 - SEO优化...

    基于PHP的vivi天涯易读网采集程序v2.9源码.zip

    总结来说,"基于PHP的vivi天涯易读网采集程序v2.9源码.zip"是一个利用PHP编程语言编写的网络数据采集工具,涉及到PHP的基础语法、Web爬虫技术、数据库操作以及可能的PHP框架应用。通过学习和研究此源码,开发者可以...

    ASP新闻发布系统源码ASP新闻发布系统源码

    5. 数据库交互:ASP新闻发布系统通常会与数据库如Access或SQL Server进行交互,使用ADO(ActiveX Data Objects)来执行SQL查询,如添加、更新和检索新闻数据。 6. 安全性:在实际部署时,必须注意防止SQL注入、跨站...

    QQ读书小偷(伪静态SHTM版) v5.0-ASP源码.zip

    2. 数据库交互:源码中应该有与数据库进行交互的部分,如用户信息存储、书籍列表管理、章节内容存储等,通常会用到ADO(ActiveX Data Objects)来操作SQL Server或Access等数据库。 3. 书籍管理:系统可能包含书籍...

    STL程序员开发指南源码

    STL的设计理念是“分离关注点”,即数据结构(容器)和操作(算法)分离,使得代码更易读、更易维护。通过对“STL程序员开发指南源码”的学习,你可以深入了解STL的内部实现,包括容器如何管理内存,迭代器如何遍历...

    vc使用ado动态打开access数据库源码

    在IT领域,特别是软件开发与数据库管理中,利用Visual C++(VC)结合ActiveX Data Objects(ADO)技术来动态操作Microsoft Access数据库是一项常见的需求。本文将深入解析如何使用VC和ADO技术动态打开并操作Access...

    易语言源码易语言用友通库存查询源码.rar

    2. **数据库连接与操作**:源码中必定包含了与数据库的交互部分,例如使用ODBC(Open Database Connectivity)或者ADO(ActiveX Data Objects)进行数据库连接,执行SQL查询语句来获取库存信息。这涉及到数据库连接...

Global site tag (gtag.js) - Google Analytics