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

网站设计网站建设专业我国经济总量

网站设计网站建设专业,我国经济总量,浙江省建设工程质量安全管理协会网站,福田建网站多少钱注解 什么是注解 Java 注解#xff08;Annotation#xff09;是 JDK 5.0 引入的一种元素#xff0c;用于为 Java 代码提供元数据。元数据是关于数据的数据#xff0c;它为代码提供附加信息#xff0c;而这些信息并不直接参与到程序的逻辑中#xff0c;但可以被编译器或…注解 什么是注解 Java 注解Annotation是 JDK 5.0 引入的一种元素用于为 Java 代码提供元数据。元数据是关于数据的数据它为代码提供附加信息而这些信息并不直接参与到程序的逻辑中但可以被编译器或其他工具使用。注解本身对代码的逻辑没有任何影响但可以通过反射机制读取注解信息从而执行相应的操作。 注解的作用 不是程序本身可以对程序作出解释可以被其他程序如编译器等读取。注解可以通过反射对其进行解释处理这个是注解与注释的最大区别。 如果一个注解没有通过反射进行注解信息处理那么这个注解毫无意义。 注解的格式 注解是以 “注释名” 在代码中存在的还可以添加一下参数值例如SuppressWarnings({“unchecked”, “rawtypes”}) 注解的使用范围 注解可以附加在package,class,method,field等上面相当于给他们添加了额为的辅助信息我们可以通过反射机制变成实现对这些元素的访问。 注解的分类 Java 注解可以分为以下三种类型 标记注解没有任何属性的注解如 Override。单值注解只有一个属性的注解如 Deprecated(“不建议使用”)。完整注解包含多个属性的注解如 SuppressWarnings({“unchecked”, “rawtypes”})。 Java 的内置注解包括 Override表示当前方法是重写了父类的方法。Deprecated表示某个类或方法已经过时不建议使用。SuppressWarnings用于告诉编译器忽略指定的警告。 除了内置注解Java 还允许开发者自定义注解。 如何自定义注解 使用interface自定义注解是自动继承了java.lang.annotation.Annotation接口 格式 public interface 注解名{定义体}示例声明一个MyAnnotation注解包含value默认值 “”、number(默认值 0)两个参数 public interface MyAnnotation { String value() default ; int number() default 0; }其中的每一个方法实际上是声明了一个配置参数。 方法名称就是参数的名称返回值类型就是参数的类型返回值类型只能是基本数据类型,Class,String,enum可以通过default来声明参数的默认值如果只有一个参数成员一般参数名为value 注意 源代码中我们经常看见在注解上还有一些注解例如以下示例 其中Target与Retention称之为元注解 Target(ElementType.METHOD) Retention(RetentionPolicy.SOURCE) public interface Override { }什么是元注解 元注解Meta-Annotation是用于定义其他注解的注解。在Java中注解是一种为代码提供元数据的机制而元注解则是对这些注解进行进一步描述的工具。JDK中定义了四种标准的元注解类型Target、Retention、Documented和Inherited。 Target用于指定注解的作用目标例如类、方法、字段等。 所修饰范围取值ElementTypepackagePACKAGE类、接口、枚举、Annotation类型TYPE类型成员方法、构造方法、成员变量、枚举CONSTRUCTOR:用于描述构造器 FIELD:用于描述字段 METHOD:用于描述方法方法参数和本地变量LOCAL_VARIABLE:用于描述局部变量 PARAMETER:用于描述参数 Retention表示需要在什么级别保存该注释信息用于指定注解的生命周期即注解在何时生效包括SOURCE源码时有效、CLASS编译时有效和RUNTIME运行时有效三种。 取值RetentionPolicy作用SOURCE在源文件中有效CLASS在class文件中有效RUNTIME在运行时有效为Runtime可以被反射机制读取 Documented用于指定将该注解包含在javadoc中。Inherited用于指定子类可以继承父类中的注解。 在自定义注解时通常需要使用元注解来定义注解的属性、行为以及作用范围等。 通过元注解开发者可以更加灵活地控制注解的使用和效果从而实现更高级的功能。 元注解使用案例 使用Target设置注解的作用目标是方法则注解放在类上是就会报错. MyAnnotation.java package demo1;import java.lang.annotation.ElementType; import java.lang.annotation.Target;Target(ElementType.METHOD) public interface MyAnnotation { }AnnotationDemo.java package demo1;MyAnnotation public class AnnotationDemo {MyAnnotationprivate void test(){} }编译结果 反射机制读取注解 做一个简单User数据表与实体关系映射,通过反射解析创建生成表SQL 实体字段表字段备注idint(10)主键namevarchar2(30)- 表注解Table.java package demo2.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 表名** author Anna.* date 2024/4/4 21:41*/ Target(ElementType.TYPE) // 设置作用范围 Retention(RetentionPolicy.RUNTIME) // 设置生命周期 public interface Table {String value(); }主键Id.java package demo2.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 主键注解** author Anna.* date 2024/4/4 21:38*/ Target(ElementType.FIELD) // 设置作用范围 Retention(RetentionPolicy.RUNTIME) // 设置生命周期 public interface Id { }字段注解Field.java package demo2.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 字段** author Anna.* date 2024/4/4 21:42*/ Target(ElementType.FIELD) // 设置作用范围 Retention(RetentionPolicy.RUNTIME) // 设置生命周期 public interface Field {// 字段名称String columnName();// 类型String type();// 长度int length(); }实体UserDo.java package demo2;import demo2.annotation.Field; import demo2.annotation.Id; import demo2.annotation.Table;/*** |实体字段|表字段|备注|* |:---|:---|:---|* |id| int(10) | 主键 |* |name| varchar2(30) |-|** author Anna.* date 2024/4/4 21:36*/ Table(USER_TABLE) public class UserDo {IdField(columnName id, type int, length 10)private Integer id;Field(columnName name, type varchar2, length 30)private String name;public UserDo() {}public UserDo(Integer id, String name) {this.id id;this.name name;}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return UserDo{ id id , name name \ };} }测试案例AnnotationDemo.java package demo2;import demo2.annotation.Id; import demo2.annotation.Table;import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.Arrays;/*** 反射模拟处理注解新** author Anna.* date 2024/4/4 21:35*/ public class AnnotationDemo {public static void main(String[] args) throws Exception {// 反射获取UserDoString path AnnotationDemo.class.getClassLoader().getResource().getPath(); // System.out.println(path);Class? clazz Class.forName(demo2.UserDo);// 初始化实例UserDo userDo (UserDo) clazz.getDeclaredConstructor().newInstance();// 定义SQL 字段StringBuffer sb new StringBuffer();sb.append(CREATE TABLE );// 获取表注解Table table clazz.getAnnotation(Table.class);sb.append(table.value()).append( {);// 获取所有属性Field[] fields clazz.getDeclaredFields();for (int i 1; i fields.length; i) {Field field fields[i - 1];// 获取所有注解Annotation[] annotations field.getAnnotations();String fieldStr ;String idStr ;for (Annotation a : annotations) {if (a instanceof demo2.annotation.Field) {demo2.annotation.Field a1 (demo2.annotation.Field) a;fieldStr a1.columnName() a1.type() ( a1.length() );} else if (a instanceof Id) {idStr PRIMARY;}}sb.append(fieldStr).append(idStr);if (i fields.length) {sb.append(,);}}sb.append(});System.out.printf(输出SQL:%s%n , sb.toString());} }执行结果 gitee源码 git clone https://gitee.com/dchh/JavaStudyWorkSpaces.git
http://www.zqtcl.cn/news/471/

相关文章:

  • 在网上做设计赚钱的网站wordpress产品模块
  • 闽侯县建设局网站常州百度关键词优化
  • 聊城网站建设项目北京通信管理局网站备案处
  • 手机网站优化指南增值服务包括哪些内容
  • 桐乡住房和建设局网站怎么样建设网站网站
  • 怎么做网站网站深圳网站建设软件开发公司哪家好
  • 做网站流行的溧阳人才网 网站开发
  • 中企动力科技股份有限公司做网站字体设计在线生成免费
  • 微擎可以做企业网站吗杭州微网站开发公司
  • 网站建设制作模板网站用途及栏目说明
  • 昆明网站设计公司微网站建设公司首选公司
  • 网站素材 图标国内大宗商品交易平台
  • 做淘宝客网站赚钱吗专业手机网站建设价格
  • 亦庄网站设计网站推广网络营销方案
  • 中国建设银行网站维护营销是什么意思
  • 甘肃营销型网站建设网站漂浮代码
  • 营销单页网站制作企业所得税怎么算小规模纳税人
  • 大连里程科技做网站注册小公司要交税吗
  • 深圳网站建设公司收费黑龙江建设网监理证书
  • 您提供的产品已经提交过网站备案茶叶门户网站建立
  • 专业的集团网站设计网络外贸开发网站公司
  • 怎么自己做网站教程全国职业生涯规划大赛
  • 全媒体网站的建设网站建设评审意见
  • 百度网站推广价格查询为什么大公司开发网站
  • 蓝色科技企业网站模板免费下载各级院建设网站的通知
  • 网站3级营销是怎么做的运输房产网站建设
  • 网站建设支出公司网站怎样做维护
  • 网站根目录怎么找做网站时的电话图标
  • 垂直网站怎么做颜色搭配对网站重要性
  • 在阿里云上做网站步骤刚做外贸最好用哪个网站