开心一笑
【向美术教师交作业时,一位学生之交了一张白纸.
老师问:"画呢?"
学生答:"这呀!"他指着白纸说.
老师:"你画的是什么?"
学生:"牛吃草."
老师:"草呢?"
学生:"被牛吃光了."
老师:"那牛呢?"
学生:"草都吃光了,牛还站在那里干什么??"】
提出问题
Lang3中的ClassUtils类如何使用???
解决问题
获取包名
getPackageName(Class<?> cls)
@Test
public void testGetPackageName(){
//获取包名
String packName = ClassUtils.getPackageName(String.class);
System.out.println(packName); // = java.lang
String packName2 = ClassUtils.getPackageName(Beans.class);
System.out.println(packName2); // = java.beans
//为空,默认返回第二个参数的值
String packName3 = ClassUtils.getPackageName(null,"the object is null");
System.out.println(packName3); // = the object is null
//传入参数为字符串
String packName4 = ClassUtils.getPackageName("java.lang.String");
System.out.println(packName4); // = java.lang
//获取规范名
String packName5 = ClassUtils.getPackageCanonicalName(String.class);
System.out.println(packName5); // = java.lang
}
获取类名
getShortCanonicalName(Class<?> cls)
getShortClassName(Class<?> cls)
getSimpleName(Class<?> cls)
@Test
public void testGetClassName(){
//获取simpleName
String simpleName1 = ClassUtils.getSimpleName(String.class);
System.out.println(simpleName1); // = String
//获取simpleName
String simpleName2 = ClassUtils.getSimpleName(null,"simpleName is null");
System.out.println(simpleName2); // = simpleName is null
//获取canonicalName
String canonicalName = ClassUtils.getShortCanonicalName(String.class);
System.out.println(canonicalName); // = String
//获取className
String className = ClassUtils.getShortClassName(String.class);
System.out.println(className); // = String
//3者的区别:对于内部类,如内部类,区别就显示出来类
//其他情况区别不大
//获取simpleName
String simpleName3 = ClassUtils.getSimpleName(Map.Entry.class);
System.out.println(simpleName3); // = Entry
//获取canonicalName
String canonicalName2 = ClassUtils.getShortCanonicalName(Map.Entry.class);
System.out.println(canonicalName2); // = Map.Entry
//获取className
String className2 = ClassUtils.getShortClassName(Map.Entry.class);
System.out.println(className2); // = Map.Entry
}
判断是否为转型
isAssignable(Class<?> cls, Class<?> toClass)等等
@Test
public void testIsAssignable(){
System.out.println("判断是否可以转型.");
System.out.println(ClassUtils.isAssignable(Date.class, Object.class)); //= true
System.out.println(ClassUtils.isAssignable(Object.class, Date.class)); //=false
}
判断是否为内部类
isInnerClass(Class<?> cls)
@Test
public void testIsInnerClass(){
System.out.println(ClassUtils.isInnerClass(Entry.class)); // = ture
System.out.println(ClassUtils.isInnerClass(Object.class)); //= false
}
判读是否为基础类型或者包装类型
isPrimitiveOrWrapper(Class<?> type)
isPrimitiveWrapper(Class<?> type)
@Test
public void testIsPrimitiveWrapper(){
// wrapper类有(Boolean, Byte, Character, Short, Integer, Long, Double, Float).
System.out.println(ClassUtils.isPrimitiveWrapper(Integer.class)); // = ture
System.out.println(ClassUtils.isPrimitiveWrapper(Object.class)); // = false
System.out.println(ClassUtils.isPrimitiveWrapper(String.class)); // = false
System.out.println(ClassUtils.isPrimitiveWrapper(int.class)); // = false
System.out.println(ClassUtils.isPrimitiveOrWrapper(Integer.class)); // = ture
System.out.println(ClassUtils.isPrimitiveOrWrapper(Object.class)); // = false
System.out.println(ClassUtils.isPrimitiveOrWrapper(String.class)); // = false
System.out.println(ClassUtils.isPrimitiveOrWrapper(int.class)); // = true
}
基础类型和包装类型转换
wrapperToPrimitive(Class<?> cls)
@Test
public void testWrapperToPrimitive(){
System.out.println(ClassUtils.wrapperToPrimitive(Integer.class));// = int
}
获取类名和class类互转
convertClassesToClassNames(List<Class<?>> classes)
convertClassNamesToClasses(List<String> classNames)
对象转Class对象
toClass(Object... array)
@Test
public void testToClass(){
//类转化为class对象
Class[] classAry = ClassUtils.toClass(new String(),new Object());
System.out.println(ArrayUtils.toString(classAry));
// = {class java.lang.String,class java.lang.Object}
}
获取缩略名
getAbbreviatedName(Class<?> cls,int len)
getAbbreviatedName(String className,int len)
@Test
public void testGetAbbreviatedName(){
//获取类的缩略名称
String abbreviatedName1 = ClassUtils.getAbbreviatedName(String.class, 5);
String abbreviatedName2 = ClassUtils.getAbbreviatedName(String.class, 10);
String abbreviatedName3 = ClassUtils.getAbbreviatedName(String.class, 3);
String abbreviatedName4 = ClassUtils.getAbbreviatedName(String.class, 20);
System.out.println(abbreviatedName1);
System.out.println(abbreviatedName2);
System.out.println(abbreviatedName3);
System.out.println(abbreviatedName4);
}
获得所有实现的接口
getAllInterfaces(Class<?> cls)
@Test
public void testGetAllInterfaces(){
//获得所有实现的接口
List<Class<?>> classAry = ClassUtils.getAllInterfaces(String.class);
System.out.println(ArrayUtils.toString(classAry));
}
获取所有父类
getAllSuperclasses(Class<?> cls)
@Test
public void testGetAllSuperclasses(){
//获得所有的父类
List<Class<?>> classArray = ClassUtils.getAllSuperclasses(String.class);
System.out.println(ArrayUtils.toString(classArray));
//[class java.lang.Object]
}
获取父类层级
hierarchy(Class<?> type)
@Test
public void testHierarchy(){
Iterator<Class<?>> myIterator = ClassUtils.hierarchy(ArrayList.class).iterator();
while(myIterator.hasNext()){
System.out.println(myIterator.next());
}
}
结果:
class java.util.ArrayList
class java.util.AbstractList
class java.util.AbstractCollection
class java.lang.Object
读书感悟
来自《麦田守望者》
- 记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
- 长大是人必经的溃烂。
- 一个不成熟男子的标志是他愿意为某种事业英勇地死去,一个成熟男子的标志是他愿意为某种事业卑贱地活着。
- 我们确实活得艰难,一要承受种种外部的压力,更要面对自己内心的困惑。在苦苦挣扎中,如果有人向你投以理解的目光,你会感到一种生命的暖意,或许仅有短暂的一瞥,就足以使我感奋不已。
- 你一定得认识到自己想往哪个方向发展,然后一定要对准那个方向出发,要马上。你再也浪费不起多一秒的时间了,你浪费不起。
- 一个不成熟的理想主义者会为理想悲壮的死去,而一个成熟的理想主义者则愿意为理想苟且的活着
- 这类事情老让我笑疼肚皮,我老是在跟人说“见到你真高兴”,其实我见到他可一点也不高兴。你要是想在这世界上活下去,就得说这类话。
其他
如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎转载,点赞,顶,欢迎留下宝贵的意见,多谢支持!