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

网站域名去哪买彩票网站开发系统

网站域名去哪买,彩票网站开发系统,自己做网站的费用,广告公司经营范围有哪些Class类中包含了类定义的详细信息,可以使用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.yayakq.cn/news/967501/

相关文章:

  • 杭州房地产网站建设科技公司主要经营什么
  • 海曙网站制作网站页面设计风格
  • 泰州住房城乡建设网站重庆有没有做网站的
  • 郑州网站优化培训机构网站制度建设
  • 做网站每年要交不费用吗自己建设网站
  • 温州网站建设公司公司哪家好济南网站制作企业
  • 制作一个网站怎么做wordpress post下载
  • 网站消息推送云畅网站建设后台
  • 南昌哪家网站建设最好做网站网站的代理算网站罪吗
  • 电子商务网站建设与管理目录哈尔滨工程交易信息网
  • 网站的建设与运营免费网站下载app软件免费
  • wordpress如何从网站登录后台网站推广主要方法
  • 四川网站建设哪家好制作网站需要学什么软件有哪些内容
  • 做网站好看的旅行背景图片导购网站 icp备案要求
  • 建德网站建设公司网站开发流程包括哪几个步骤?
  • 长春网长春网站设计站建设网站估值怎么做
  • 合肥网站推广 公司wordpress主题教程视频教程
  • django做的网站安全吗阿里巴巴做网站吗
  • 网站建设公式东莞++网站建设
  • 深圳市甘泉建设监理有限公司网站24小时在线更新视频高清免费观看
  • 北京做家教的的网站中企动力科技怎么样
  • 网站建设进度规划vs做网站创建项目时选哪个
  • 建设 公司 网站 请示安阳信息网
  • 网站基础知识域名5个点免费网站seo诊断
  • 自适应网站制作简创网络承包网站建设的公司
  • 关于网站项目建设的申请做团购网站的心得
  • 岳麓区专业的建设网站公司公司logo设计生成器
  • 企业网站适合做成响应式吗私域电商平台有哪些
  • 网站制作有哪些种类外贸网站 沙盒
  • 银川市住房和城乡建设局网站建设博物馆网站