网站设计开户女生网站开发

pingmian/2025/10/8 10:29:04/文章来源:
网站设计开户,女生网站开发,网站建设建设价格,可以建设彩票网站吗注解 什么是注解 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.mzph.cn/pingmian/89888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

辽宁建设工程信息网官网新网站是哪个常规网站服务器

选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我想大多数人也是出于这个原因选择了Spring Boot,如果不是特殊应用场景,就只需要在application.properties中完成一些属性配置就能开启各模块的应用。而不像传统的XML配…

计算机应用技术 网站开发免费ppt模板简约

在官方文档里面,修改标记的图形(symbol)的方法有三种: 一:ECharts 提供的标记类型有 ‘circle’, ‘rect’, ‘roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’, ‘none’;例:sym…

西安seo网站建设单页

一、V2版本细节升级 1、YOLO-V2: 更快!更强 1.1 做的改进内容 1. YOLO-V2-Batch Normalization V2版本舍弃Dropout,卷积后每一层全部加入Batch Normalization网络的每一层的输入都做了归一化,收敛相对更容易经过Batch Norma…

免费源码下载网站网站开发字体的引用

5月26日上午,康佳之星携手青岛蓝谷管理局、斯坦福青岛研究院、海尔海创汇联合举办的第二届硅谷创新加速营第五讲顺利完成。斯坦福青岛研究院董事长的Claude Leglise先生做客直播间,为现场创业者、企业家讲授创业之路必修课:企业财务规划。本讲…

代运营网站建设仿站定制模板建站

前言 Java 是一门强大而广泛应用的编程语言,它的灵活性和跨平台特性使其成为许多开发者的首选。无论您是刚刚入门编程,还是已经有一些编程经验,掌握 Java 的基础知识都是构建更复杂程序的关键。 本学习笔记旨在帮助您深入了解 Java 编程语言…

外语网站开发asp网站防注入

数字图书馆是一个开放式的硬件和软件的集成平台,通过对技术和产品的集成,把当前大量的各种文献载体数字化,将它们组织起来在网上服务。从理论上讲,数字图书馆是一种引入管理和应用数字化技术的方法,它的主要特点有&…

网站美工建设意见h5开发环境搭建

前言 HTTP 具有相当优秀和方便的一面,然而 HTTP 并非只有好的一面,事物皆具两面性,它也是有不足之处的。例如: 通信使用明文(不加密),内容可能会被窃听。不验证通信方的身份,因此有可能会遭遇…

烟台专业做网站的公司app引流推广方法

1.查询mysql的存储执行目录(secure-file-priv是指定文件夹作为导出文件存放的地方)所以需要查询以下,不然会报1290错误 show variables like %secure%;2.查询并转存 SELECT * into outfile C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\zo…

网站建设流量从哪里来seo词库排行

1. 公共字段自动填充的作用 当我们开发一个项目时,我们可能会对几个字段重复的进行填写;例如:当我们在修改一个用户时,或者添加一个用户时,我们都需要将它的修改人、修改时间给赋值,如果我们每次就进行手动…

投诉网站制作临沭做网站

本文恩主要介绍了详解HTML5 录音的踩坑之旅,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。说实话,一开始都没接触过 HTML5 的 Audio API,而且要基于在我们…

phpcms做的网站备案期间 网站想正常

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 前几天在编写代码的时候,突然要根据结构体的属性进行从小到大的排序,这即是我写这篇文章的导火索。 正如大家所知…

建网站有哪些文件夹wap网站现在还有什么用

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…

盐城永祥建设有限公司网站宁波网站建设哪家比较好

当涉及到互联网性能和可用性优化时,DNS(Domain Name System)和CDN(Content Delivery Network)是两个至关重要的元素。它们各自发挥着关键作用,以确保用户能够快速、可靠地访问网站和应用程序。在本文中&…

天河网站建设企业科技公司名字大全

一.使用 Go 语言的开源框架Livego搭建流媒体服务器 1.Livego 框架的介绍 Go 语言拥有强大的 服务器性能 ,golang 在语言级别解决了 多进程并发 的问题,支持 多核 CPU均衡使用 ,支持 海量轻量级线程 ,所以非常适合做 流媒体服务器 .而 livego 是基于golang 开发的简单高效的…

意大利做包招工的网站邯郸市网

我无法将我的Web应用程序与MySQL 5.5.11后端部署到JBoss 5.我收到此错误:引起:java.lang.ClassNotFoundException:来自BaseClassLoader 262b2310的com.mysql.jdbc.Driver我在下面粘贴了我的堆栈跟踪.这就是我所做的……我将mysql-connector-…

网站建设公司工作岗位说明书南充移动网站建设

各位CSDN的uu们好呀,今天,小雅兰的内容是51单片机中的定时器以及按键控制LED流水灯模式&定时器时钟,下面,让我们进入51单片机的世界吧!!! 定时器 按键控制LED流水灯模式 定时器时钟 源代…

南宁网站建设博信网站改版要重新备案

9月23日至10月8日,亚洲最大规模体育赛事亚运会在杭州举办。作为国际性体育赛事,除赛中的各类竞赛项目外,杭州亚运会前后相关活动也吸引了大众目光的聚焦。 Kaadas凯迪仕智能锁作为此次杭州亚运会官方指定智能门锁,以#凯迪仕守护每…

网页怎么做成网站网站建设与维护税率

博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问。 由于换了新电脑,keil重装了下,然而之前的MCU的支持包没有安装,以及一些其他的问题,导致可以编译但是不能将程序烧录到单片…

企业网站模板论坛买外链

PyCharm Pro是一款专业的Python集成开发环境(IDE),由JetBrains公司开发。它为Python开发者提供了丰富的功能和工具,使得Python编程变得更加高效和便捷。PyCharm Pro具有智能代码编辑功能,能够自动完成代码、快速导航至…

中国建设银行总行网站外贸网站源代码下载

方法 pthread_mutex_lock(mutex) pthread_mutex_trylock(mutex) pthread_mutex_unlock(mutex) 用法 线程可调用pthread_mutex_lock()来获取某个互斥量,如果该互斥量已经被其他线程加锁,则该线程将会被阻塞,直到互斥量被其他线程释放。 线程可调用pthread_mutex_trylock(…