将常量放在接口中,通过继承该接口,调用常量
1 | public interface ClassConstants{ |
查看 Class 是否是基本类型
1 | clasz.isPrimitive(); |
查看类是否为基本类型或包装类型
1 | import org.apache.commons.lang3.ClassUtils; |
读取 properties 中文乱码解决
1 | properties.load(new InputStreamReader(AutoConfig.class.getResourceAsStream("/application.properties"),"utf-8")); |
判断类是否为数组
1 | klass.isArray(); |
判断类是否继承自
1 | Father.class.isAssignableFrom(Son.class) |
获取当前执行的方法名,通过方法内的内部类来实现的
1 | new Object(){}.getClass().getEnclosingMethod().getName(); |
使用 shell
1 | //获取当前系统名称,可根据不同系统调用不同的命令 |
基本类型零值
对基本数据类型来说,对于类变量static
和全局变量,如果不显式地对其赋值而直接使用,则系统会为其赋予默认的零值,可以根据这个特性,直接用静态类常量来获取基本变量的初始值
1 | public class Primitive { |
反射工具类
第三方反射工具类
1 | <dependency> |
扫描类在某个包下的所有子类
1 | Reflections reflections = new Reflections("my.project"); |
扫描在某个包下的被注解了某个注解的所有类
1 | Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(SomeAnnotation.class); |
Comparator.comparing
可是使用 lambda 快速实现comparable
1 | Comparator<Player> byRanking |
类似Collectors
提供了快捷的Comparator
方法
1 | Comparator<Player> byRanking = Comparator |
批量反编译 jar 包
1 | ls *.jar|xargs -I {} jadx {} -d src |
问题
NoSuchMethodError
一般是由版本冲突造成的
进制
1 | int x = 0b11;// 二进制 |