【小家Java】Java第二API之apache的commons-lang3工具包史上最完整的讲解(书写优雅代码必备工具)(下)

简介: 【小家Java】Java第二API之apache的commons-lang3工具包史上最完整的讲解(书写优雅代码必备工具)(下)

isAssignable:是否是相同的class类型 支持class、数组等等 挺实用的


isInnerClass:检查一个类是否是内部类或者静态内部类等


getClass:加强版的Class.forName() 可以指定值是否要马上初始化该类


hierarchy:获取到该类的继承结构


public static void main(String[] args) {
        Iterable<Class<?>> hierarchy = ClassUtils.hierarchy(ArrayList.class);
        hierarchy.forEach(System.out::println);
        //输出了类的层级结构(默认是不包含接口的)
        //class java.util.ArrayList
        //class java.util.AbstractList
        //class java.util.AbstractCollection
        //class java.lang.Object
        hierarchy = ClassUtils.hierarchy(ArrayList.class,ClassUtils.Interfaces.INCLUDE);
        hierarchy.forEach(System.out::println);
        //class java.util.ArrayList
        //interface java.util.List
        //interface java.util.Collection
        //interface java.lang.Iterable
        //interface java.util.RandomAccess
        //interface java.lang.Cloneable
        //interface java.io.Serializable
        //class java.util.AbstractList
        //class java.util.AbstractCollection
        //class java.lang.Object
    }

EnumUtils:辅助操作枚举的一些工具


getEnum(Class enumClass, String enumName) 通过类返回一个枚举,可能返回空


getEnumList(Class enumClass) 通过类返回一个枚举集合


getEnumMap(Class enumClass) 通过类返回一个枚举map


isValidEnum(Class enumClass, String enumName) 验证enumName是否在枚举中,返回true false


//枚举类
public enum ImagesTypeEnum {
    JPG,JPEG,PNG,GIF;
}
//测试
        ImagesTypeEnum imagesTypeEnum = EnumUtils.getEnum(ImagesTypeEnum.class, "JPG");
        System.out.println("imagesTypeEnum = " + imagesTypeEnum);
        System.out.println("--------------");
        List<ImagesTypeEnum> imagesTypeEnumList = EnumUtils.getEnumList(ImagesTypeEnum.class);
        imagesTypeEnumList.stream().forEach(
                imagesTypeEnum1 -> System.out.println("imagesTypeEnum1 = " + imagesTypeEnum1)
        );
        System.out.println("--------------");
        Map<String, ImagesTypeEnum> imagesTypeEnumMap = EnumUtils.getEnumMap(ImagesTypeEnum.class);
        imagesTypeEnumMap.forEach((k, v) -> System.out.println("key:" + k + ",value:" + v));
        System.out.println("-------------");
        boolean result = EnumUtils.isValidEnum(ImagesTypeEnum.class, "JPG");
        System.out.println("result = " + result);
        boolean result1 = EnumUtils.isValidEnum(ImagesTypeEnum.class, null);
        System.out.println("result1 = " + result1);
输出:
imagesTypeEnum = JPG
--------------
imagesTypeEnum1 = JPG
imagesTypeEnum1 = JPEG
imagesTypeEnum1 = PNG
imagesTypeEnum1 = GIF
--------------
key:JPG,value:JPG
key:JPEG,value:JPEG
key:PNG,value:PNG
key:GIF,value:GIF
-------------
result = true
result1 = false


JavaVersion 枚举类,记录了java所有的版本号


RandomStringUtils : 需要随机字符串的时候,它或许能帮上忙

 public static void main(String[] args) {
        //随便随机一个字  所以有可能是乱码
        String random = RandomStringUtils.random(10);
        //在指定范围内随机
        String randomChars = RandomStringUtils.random(3,'a','b','c','d','e');
        //随便随机10个Ascii
        String randomAscii = RandomStringUtils.randomAscii(10);
        //注意这里不是5到10内随机,而是随机一个长度的数字
        String randomNumeric = RandomStringUtils.randomNumeric(5,10);
        System.out.println(random); //?ᣒ?⍝?䆃ぬ
        System.out.println(randomChars); //dac
        System.out.println(randomAscii); //hpCQrtmUvi
        System.out.println(randomNumeric); //2580338
    }

RandomUtils:这个不解释,如果你需要随机数字,用它吧。int、long、flort都是ok的


RegExUtils:处理字符串用正则替换等


removeAll

removeFirst

removePattern

replaceAll

replaceFirst


SerializationUtils:对象的序列化工具。


在Json流行的时代,这个工具使用的几率就较小了。


   clone:采用字节数组ByteArrayInputStream来拷贝一个一模一样的对象


   serialize(final Serializable obj, final OutputStream outputStream) :可以把对象序列化到输出流里


   byte[] serialize(final Serializable obj):直接序列化成字节数组


   deserialize(final InputStream inputStream)、deserialize(final byte[] objectData)


SystemUtils:主要定义了一些系统底层的常量。比如类路径、操作系统、类型、java版本等等


StringUtils的使用:


参考我的另外一篇博文:【小家Java】common-lang3中StringUtils的使用详解


相关文章
|
13天前
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
33 3
|
4天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
23 11
|
5天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
7天前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【4月更文挑战第17天】本文介绍了在Java环境下使用Apache Kafka进行消息队列处理的方法。Kafka是一个分布式流处理平台,采用发布/订阅模型,支持高效的消息生产和消费。文章详细讲解了Kafka的核心概念,包括主题、生产者和消费者,以及消息的存储和消费流程。此外,还展示了Java代码示例,说明如何创建生产者和消费者。最后,讨论了在高并发场景下的优化策略,如分区、消息压缩和批处理。通过理解和应用这些策略,可以构建高性能的消息系统。
|
8天前
|
存储 安全 Java
说说Java 8 引入的Stream API
说说Java 8 引入的Stream API
11 0
|
8天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【4月更文挑战第16天】本文将介绍Java 8中的两个重要新特性:Lambda表达式和Stream API。Lambda表达式是Java 8中引入的一种新的编程语法,它允许我们将函数作为参数传递给其他方法,从而使代码更加简洁、易读。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明式的方式处理数据,从而使代码更加简洁、高效。本文将通过实例代码详细讲解这两个新特性的使用方法和优势。
|
9天前
|
安全 Java API
RESTful API设计与实现:Java后台开发指南
【4月更文挑战第15天】本文介绍了如何使用Java开发RESTful API,重点是Spring Boot框架和Spring MVC。遵循无状态、统一接口、资源标识和JSON数据格式的设计原则,通过创建控制器处理HTTP请求,如示例中的用户管理操作。此外,文章还提及数据绑定、验证、异常处理和跨域支持。最后,提出了版本控制、安全性、文档测试以及限流和缓存的最佳实践,以确保API的稳定、安全和高效。
|
12天前
|
存储 Java 关系型数据库
掌握Java 8 Stream API的艺术:详解流式编程(一)
掌握Java 8 Stream API的艺术:详解流式编程
46 1
|
18天前
|
监控 测试技术 API
api管理工具的新发现
该内容介绍了两款强大的API管理工具——Apifox和Eolink。Apifox集成了Postman、Swagger、Mock和JMeter的功能,提供一体化的API协作平台,提高开发、测试效率。Eolink则包括API设计、自动化测试和团队协作的apikit,以及集成第三方API的apispace。两者都提供便捷的官网和丰富的资源,值得一试。
26 0
|
21天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发

推荐镜像

更多