JavaSE——常用API进阶一(2/3)-Objects类(equals方法、isNull方法、nonNull方法)、包装类(介绍、包装方法及自动装拆箱、其他常见操作)

简介: JavaSE——常用API进阶一(2/3)-Objects类(equals方法、isNull方法、nonNull方法)、包装类(介绍、包装方法及自动装拆箱、其他常见操作)

前面我们重写equals方法的时候,发现比较两个对象是否相等,用的是objects的equals方法,而不是用对象自己的equals方法来比较:


这是为什么呢?

接下来就来学习一下Objects类的相关知识。

Objects

  • Objects是一个工具类,提供了很多操作对象的静态方法给我们使用。

Objects类的常见方法

图片.png

equals方法

public class Test {
    public static void main(String[] args) throws CloneNotSupportedException {
        String s1 = null;
        String s2 = "hello";
 
        //如果使用Object父类的equals方法,会因为调用了空地址而报错
        //System.out.println(s1.equals(s2));
        //所以就需要用Objects工具类的equals
        System.out.println(Objects.equals(s1, s2));
 
    }
}

运行结果:


其源码:(按住Ctrl键+鼠标左键点击目标方法)


下面两个方法的用法都比较简单直接:

isNull方法

System.out.println(Objects.isNull(s1)); //true
//效果相当于下面这句
System.out.println(s1 == null);//true
 
System.out.println(Objects.isNull(s2)); //false
System.out.println(s2 == null);//false

运行结果:


nonNull方法

System.out.println(Objects.nonNull(s2)); //true
System.out.println(Objects.nonNull(s1)); //false

运行结果:


包装类

介绍

为什么要有包装类?

对于基本类型,它们都不是对象;但是如果在泛型中我们需要用到这些基本类型的数据,而泛型又只能传入引用数据类型,这个时候包装类就发挥了作用了。


  • 包装类就是把基本类型的数据包装成对象。
基本数据类型 对应的包装类(引用数据类型)
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

接下来以Integer为例,展示一下基本类型的数据包装成对象的方法:

包装方法及自动装拆箱

基本类型的数据包装成对象的方法
public Integer(int value)  已过时
public static Integer valueOf(int i)   


具体用法:

public class Test {
    public static void main(String[] args) {
//        Integer a1 = new Integer(12); //已过时
        Integer a2 = Integer.valueOf(12);
        System.out.println(a2);
    }
}

运行结果:


对于包装类来说,是可以自动装箱和拆箱的,

  • 自动装箱:基本数据类型可以自动转换为包装类型。
  • 自动拆箱:包装类型可以自动转换为基本数据类型。
//自动装箱
Integer a3 = 12;
 
//自动拆箱
int a4 = a3;

在泛型或者集合中应用:

public class Test {
    public static void main(String[] args) {
 
        //ArrayList<int> list = new ArrayList<int>(); //不支持基本数据类型
        ArrayList<Integer> list = new ArrayList<>();
        list.add(12); //自动装箱
        list.add(13);//自动装箱
        int rs = list.get(1); //自动拆箱
        System.out.println(rs);
    }
}

运行结果:


其他常见操作

  • 可以把基本类型的数据转换成字符串类型。

public static String toString(double d)

public String toString()

  • 可以把字符串类型的数值转换成数值本身对应的数据类型。

public static int parseInt(String s)

public static Integer valueOf(String s)

具体用法:

把基本类型的数据转换成字符串类型

public class Test {
    public static void main(String[] args) {
 
        //1.把基本类型的数据转换成字符串
        //第一种写法
        Integer a = 23;
        String rs1 = Integer.toString(a); //转换成 “23”
        System.out.println(rs1 + 1); //字符串拼接,结果为231
 
        System.out.println();
 
        //第二种写法
        String rs2 = a.toString();
        System.out.println(rs2 + 1); //结果一样为231
 
        System.out.println();
 
        //第三种
        String rs3 = a + "";  //自动转换类型
        System.out.println(rs3 + 1);
    }
}

运行结果:


把字符串类型的数值转换成数值本身对应的数据类型

public class Test {
    public static void main(String[] args) {
 
        //2.把字符串类型的数值转换成对应的基本类型
        String ageStr = "29";
        //int ageI = Integer.parseInt(ageStr); //29
        //更建议使用下面这种,用的时候不需要多记一个方法
        int ageI = Integer.valueOf(ageStr); //29
        System.out.println(ageI + 1); // 30
 
        System.out.println();
 
        String scoreStr = "99.5";
       // double score = Double.parseDouble(scoreStr); //99.5
        //同样的,建议使用下面这种方法
        double score = Double.valueOf(scoreStr);//99.5
        System.out.println(score + 0.5);
    }
}

运行结果:



END



目录
相关文章
|
8天前
|
Java API
API:object当中的各种方法刨析(今日份:equals toString)
API:object当中的各种方法刨析(今日份:equals toString)
|
10天前
|
分布式计算 DataWorks API
DataWorks操作报错合集之如何解决API调用报400,文件夹找不到的错误
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8天前
|
Java 大数据 API
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
49 0
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
|
10天前
|
JavaScript 关系型数据库 Serverless
Serverless 应用引擎操作报错合集之在调用stable Diffusion函数计算api接口返回,报错:"Not Found"一般是什么原因
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
14天前
|
存储 Java API
JavaSE——常用API进阶二(8/8)-Arrays、Comparable、Comparator(Arrays类提供的的常见方法、用法示例)
JavaSE——常用API进阶二(8/8)-Arrays、Comparable、Comparator(Arrays类提供的的常见方法、用法示例)
16 2
|
14天前
|
安全 Java API
JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)
JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)
26 2
|
10天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之调用ListInstances API时报错:ServiceUnavailable The request has failed due to a temporary failure of the server.是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7天前
|
安全 数据挖掘 API
【实时数据】商品详情API接口系列开发
商品详情API接口系列对于电商平台至关重要,它们为开发者提供了实时、准确的商品信息,使得在线销售和展示商品变得更加高效和精准。以下是几个主要的电商平台及其商品详情API接口的介绍:
|
15天前
|
监控 供应链 搜索推荐
数据驱动电商:深度利用淘宝API接口掌握商品详情
本文探讨了如何利用淘宝API接口获取商品详情数据以助力电商决策。通过API,商家能获取商品标题、价格、库存等信息,从而进行市场分析、库存优化、定价策略制定及个性化推荐。步骤包括注册获取API权限、理解文档、构建数据收集流程、处理分析数据以及应用结果。示例代码展示了如何用Python调用API获取商品详情。善用API和数据驱动策略可在电商市场中取得优势。请注意遵循淘宝的API使用规范。
|
1天前
|
存储 前端开发 安全
Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口
这篇文章介绍了如何使用Supabase实现RESTful风格的API接口,用于网站分类和子站点的增删改查(CURD)功能。文章首先阐述了表设计,包括ds_categorys和ds_websites两张表的列名、类型和用途,并提到了为每张表添加的user_id和email字段以支持用户身份识别。接着,文章描述了接口设计,以ds_websites表为例,说明了如何通过RESTful API实现CURD功能,并给出了使用SupabaseClient实现插入数据的相关代码。文章最后提供了项目效果预览和总结,指出学习了Nuxt3创建接口及调用Supabase数据库操作。
Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口