当前位置: 首页 > news >正文

宁波品牌网站建设服务电话企业站seo报价

宁波品牌网站建设服务电话,企业站seo报价,聚合页做的比较好的教育网站,wordpress elisionClass类中包含了类定义的详细信息,可以使用Class类中提供的方法来获取,下面我们先获取Class对象,再介绍Class类中提供的获取类信息的方法。 一、准备工作 在src/test/java目录的cn.horse.reflect.entity包下新建BaseEntity类、UserInfoEnti…

Class类中包含了类定义的详细信息,可以使用Class类中提供的方法来获取,下面我们先获取Class对象,再介绍Class类中提供的获取类信息的方法。

一、准备工作

在src/test/java目录的cn.horse.reflect.entity包下新建BaseEntity类、UserInfoEntity类

BaseEntity类:

package cn.horse.reflect.entity;public abstract class BaseEntity {public Long id;public BaseEntity() { }public BaseEntity(Long id) {this.id = id;}public void setId(Long id) {this.id = id;}public Long getId() {return id;}
}

UserInfoEntity类:

package cn.horse.reflect.entity;@SuppressWarnings({})
public class UserInfoEntity extends BaseEntity {public String name;private Integer age;private UserInfoEntity() {}public UserInfoEntity(Long id) {super(id);}public UserInfoEntity(Long id, String name, Integer age) {super(id);this.name = name;this.age = age;}public void setAge(Integer age) {this.age = age;}public Integer getAge() {return age;}private String getName() {return name;}private void check() { }
}

二、获取Class对象的三种方式

在src/test/java目录的cn.horse.reflect包下新建GetClassInstanceTests测试类

GetClassInstanceTests类:

package cn.horse.reflect;import cn.horse.reflect.entity.UserInfoEntity;
import org.junit.jupiter.api.Test;import static org.assertj.core.api.Assertions.assertThat;public class GetClassInstanceTests {@Testpublic void testGetClassInstanceByBusObjectInstance() {assertThat(new UserInfoEntity(1L).getClass()).isNotNull();}@Testpublic void testGetClassInstanceByBusClass() {assertThat(UserInfoEntity.class).isNotNull();}@Testpublic void testGetClassInstanceByName() throws ClassNotFoundException {assertThat(Class.forName("cn.horse.reflect.entity.UserInfoEntity", false, this.getClass().getClassLoader())).isNotNull();}@Testpublic void testClassInstanceEquals() throws ClassNotFoundException {Class<?> forNameType = Class.forName("cn.horse.reflect.entity.UserInfoEntity", false, this.getClass().getClassLoader());Class<?> dotClassType = UserInfoEntity.class;Class<?> objectGetClassType = new UserInfoEntity(1L).getClass();assertThat(forNameType).isEqualTo(dotClassType);assertThat(dotClassType).isEqualTo(objectGetClassType);assertThat(forNameType).isEqualTo(objectGetClassType);}
}

单元测试方法介绍:

testGetClassInstanceByBusObjectInstance使用对象的实例获取Class对象

testGetClassInstanceByBusClass使用类获取Class对象

testGetClassInstanceByName使用全限类名获取Class对象

testClassInstanceEquals判断三种方法获取到的Class对象是否相等

单元测试中使用了三种方式获取Class对象,三种方式获取到的Class对象是相等的。

三、Class类中方法的使用

在src/test/java目录的cn.horse.reflect包下新建ClassInstanceMethodTests测试类

ClassInstanceMethodTests类:

package cn.horse.reflect;import cn.horse.reflect.entity.BaseEntity;
import cn.horse.reflect.entity.UserInfoEntity;
import org.junit.jupiter.api.Test;import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Locale;import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;public class ClassInstanceMethodTests {@Testpublic void testGetName() {assertThat(UserInfoEntity.class.getSimpleName()).isEqualTo("UserInfoEntity");assertThat(UserInfoEntity.class.getName()).isEqualTo("cn.horse.reflect.entity.UserInfoEntity");assertThat(UserInfoEntity.class.getPackage().getName()).isEqualTo("cn.horse.reflect.entity");}@Testpublic void testPrimitive() {assertThat(byte.class.isPrimitive()).isTrue();assertThat(short.class.isPrimitive()).isTrue();assertThat(int.class.isPrimitive()).isTrue();assertThat(long.class.isPrimitive()).isTrue();assertThat(float.class.isPrimitive()).isTrue();assertThat(double.class.isPrimitive()).isTrue();assertThat(boolean.class.isPrimitive()).isTrue();assertThat(void.class.isPrimitive()).isTrue();assertThat(int[].class.isPrimitive()).isFalse();assertThat(String.class.isPrimitive()).isFalse();assertThat(UserInfoEntity.class.isPrimitive()).isFalse();}@Testpublic void testArray() {assertThat(String[].class.isArray()).isTrue();assertThat(String[].class.getComponentType()).isEqualTo(String.class);}@Testpublic void testEnum() {assertThat(Locale.Category.class.isEnum()).isTrue();Collection<Locale.Category> enumConstantList = Arrays.asList(Locale.Category.class.getEnumConstants());List<Locale.Category> expectedEnumConstantList = Arrays.asList(Locale.Category.values());assertThat(enumConstantList.size()).isEqualTo(expectedEnumConstantList.size());assertThat(enumConstantList).containsAll(expectedEnumConstantList);}@Testpublic void testAnnotation() {assertThat(SuppressWarnings.class.isAnnotation()).isTrue();}@Testpublic void testLocalClass() {// 定义局部类class LocalClass {}assertThat(LocalClass.class.isLocalClass()).isTrue();}@Testpublic void testAnonymousClass() {Runnable unknownClass = new Runnable() {@Overridepublic void run() {}};assertThat(unknownClass.getClass().isAnonymousClass()).isTrue();}@Testpublic void testMemberClass() {assertThat(UserInfoEntity.class.isMemberClass()).isFalse();assertThat(InnerClass.class.isMemberClass()).isTrue();assertThat(StaticInnerClass.class.isMemberClass()).isTrue();// 定义局部类class LocalClass {}assertThat(LocalClass.class.isMemberClass()).isFalse();// 匿名类Runnable unknownClass = new Runnable() {@Overridepublic void run() {}};assertThat(unknownClass.getClass().isMemberClass()).isFalse();}@Testpublic void testGetModifiers() {assertThat(Modifier.isPublic(UserInfoEntity.class.getModifiers())).isTrue();assertThat(Modifier.isProtected(UserInfoEntity.class.getModifiers())).isFalse();assertThat(Modifier.isPrivate(UserInfoEntity.class.getModifiers())).isFalse();assertThat(Modifier.isAbstract(UserInfoEntity.class.getModifiers())).isFalse();assertThat(Modifier.isInterface(UserInfoEntity.class.getModifiers())).isFalse();assertThat(Modifier.isStatic(UserInfoEntity.class.getModifiers())).isFalse();assertThat(Modifier.isFinal(UserInfoEntity.class.getModifiers())).isFalse();assertThat(Modifier.isNative(UserInfoEntity.class.getModifiers())).isFalse();}@Testpublic void testStaticInnerClass() {assertThat(Modifier.isStatic(StaticInnerClass.class.getModifiers())).isTrue();}@Testpublic void testInnerClass() {assertThat(InnerClass.class.isMemberClass() && !Modifier.isStatic(InnerClass.class.getModifiers())).isTrue();}private static class StaticInnerClass { }private class InnerClass { }@Testpublic void testTypeConvert() {assertThat(UserInfoEntity.class.isInstance(new UserInfoEntity(1L))).isTrue();assertThat(BaseEntity.class.isInstance(new UserInfoEntity(1L))).isTrue();assertThat(UserInfoEntity.class.isAssignableFrom(UserInfoEntity.class)).isTrue();assertThat(BaseEntity.class.isAssignableFrom(UserInfoEntity.class)).isTrue();assertThat(BaseEntity.class.cast(new UserInfoEntity(1L))).isNotNull();assertThatExceptionOfType(ClassCastException.class).isThrownBy(() -> BaseEntity.class.cast(1));}
}

单元测试类中定义了两个内部类:静态内部类StaticInnerClass、内部类InnerClass;

单元测试方法介绍:

testGetName获取类名称,其中getSimpleName用于获取简略名称,getName用于获取全限类名,getPackage用于获取包对象

testPrimitive判断是否是基本数据类型,使用isPrimitive方法判断是否是基本数据类型(byte,short,int,long,float,double,Boolean,void)

testArray判断并获取数组元素类型,使用isArray判断是否是数组类型,使用getComponentType获取数组元素类型

testEnum判断并获取枚举常量数组,使用isEnum判断是否是枚举类型,使用getEnumConstants获取枚举常量数组

testAnnotation判断是否是注解类型,使用isAnnotation判断是否是注解类型

testLocalClass判断是否是局部类,使用isLocalClass判断是否是局部类

testAnonymousClass判断是否是匿名类,使用isAnonymousClass判断是否是匿名类

testMemberClass判断是否是成员类,使用isMemberClass判断是否是成员类,内部类、静态内部类都属于成员类,局部类、匿名类都不属于成员类

testGetModifiers获取修饰符,使用getModifiers获取修饰符,并使用Modifier类提供的静态方法依次判断了是否使用了public、protected、private、abstract、interface、static、final、native等修饰符

testStaticInnerClass判断是否是静态内部类,使用getModifiers获取修饰符,并使用Modifier类提供的静态方法判断是否使用了static修饰符

testInnerClass判断是否是内部类,判断是否是成员类并且没有使用static修饰符

testTypeConvert类型判断与转换,使用isInstance或isAssignableFrom可以判断类型是否可以转换,使用cast可以进行类型的转换。

http://www.yidumall.com/news/38536.html

相关文章:

  • 牟平网站制作商铺营销推广方案
  • 深圳有几个区分布图seo哪里可以学
  • wordpress做教育网站服务营销包括哪些内容
  • 怎么做视频平台网站搜索自媒体平台
  • android属于系统软件吗百度推广seo自学
  • 看手机的网站叫什么优化关键词快速排名
  • 做网站开发的想接私活地推拉新app推广平台
  • 哪个网站可以免费学做美甲百度入口网站
  • 苏州做网站哪家公司好南宁seo外包服务商
  • 什么网站有项目做网站推广的全过程
  • 建设公司网站的细节今日头条新闻最新
  • e京汕头第一网关键词seo公司真实推荐
  • 西青集团网站建设开发做一个网站需要多少钱
  • 运城做网站黄页网站推广服务
  • 网站及微站建设合同验收百度广告投放平台官网
  • 常德做网站公司哪家好荆门刚刚发布的
  • 网站建设免费代理深圳抖音seo
  • 网站推广方式大全免费的网站申请
  • 时代网站管理系统怎么做网站seo怎么弄
  • 现在还有网站做校内网吗做一个公司网站需要多少钱
  • 嘉定网站建设哪家便宜连云港百度推广总代理
  • 微信网站跳转链接怎么做项目优化seo
  • 手机网站整站下载sem是什么设备
  • 卖域名的公司 骗做网站淘宝推广软件哪个好
  • 怀化seo网站2020新闻大事件摘抄
  • 常州工厂网站建设百度网盘官网登陆入口
  • 杭州广众建设工程有限公司网站推广方式有哪些?
  • 系统开发与网站开发重庆seo网站收录优化
  • 高清大图网站css哪里可以建网站
  • 服装网站建设策划书的基本结构网站是怎么做出来的