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

零基础怎么做网站网站当前位置 样式

零基础怎么做网站,网站当前位置 样式,郴州新网交友信息,国外做问卷网站好文章目录 一、什么是注解(1).注解的作用(2).注解的格式(3).注解在哪里使用 二、注解的类型(1).内置注解(2).元注解(3).自定义注解 三、自定义注解实现及测试结果#xff1a; 一、什么是注解 (1).注解的作用 ①#xff1a;注解一般用于对程序的说明#xff0c;就像注释一样… 文章目录 一、什么是注解(1).注解的作用(2).注解的格式(3).注解在哪里使用 二、注解的类型(1).内置注解(2).元注解(3).自定义注解 三、自定义注解实现及测试结果 一、什么是注解 (1).注解的作用 ①注解一般用于对程序的说明就像注释一样但是区别是注释是给人看的但是注解是给程序看的。 ②让编译器进行编译检查的作用比如下边这个Override注解是重写的意思子类重写了父类的方法但是改动了方法名所以报错。 (2).注解的格式 注解是以“注解名”在代码当中存在的还可以添加一些参数值例如 SuppressWarnings(value “unchecked”) (3).注解在哪里使用 可以附加在package、class、method、field等上面相当于给他们添加了额外的辅助信息。我们可以通过反射的方式对这些注解进行访问。 二、注解的类型 一般常用的注解分为三类 (1).内置注解 ①Override:修辞方法的表示一个方法重写了父类方法 ②Deprecated:修辞方法、属性、类表示不鼓励程序员使用这样的元素通常是因为它很危险或存在更好的选择。通俗来说就是遗弃。 ③SuppressWarnings:用来抑制编译时的警告信息括号里的的值包括 a.deprecation:使用了过时的类或方法的警告 b.unchecked执行了未检查时的转换时的警告集合就是未指定泛型 c.fall through:当在switch语句使用时发生case穿透 d.path:在类路径、源文件路径等中有不存在路径的警告 e.serial:可序列化类上缺少serialVerisonUID定义时的警告 f.finally:任何finally橘子不能完成时的警告 g.all以上所有情况的警告。 一个 SuppressWarnings(“all”) 多个 SuppressWarnings(value{“all”,“path”}) (2).元注解 元注解是用于注解的注解在JDK 1.5中提供了4个标准的用来对注解类型进行注解的注解类 ①Target注解(用来描述注解的使用范围即注解可以使用在什么地方在定义注解的时候使用这个我们可以更加清晰的知道它的使用范围) public enum ElementType {TYPE, //类接口FIELD, //成员变量METHOD, //方法PARAMETER, //方法参数CONSTRUCTOR, //构造方法LOCAL_VARIABLE, //局部变量ANNOTATION_TYPE, //注解类PACKAGE, // 包TYPE_PARAMETER, //类型参数TYPE_USE //使用类型的任何地方 }②Retention注解(表示这个注解在什么时候还有效 , 用于描述注解的生命周期) public enum RetentionPolicy {SOURCE, // 源文件保留CLASS, // 编译期保留默认值RUNTIME // 运行期保留可通过反射去获取注解信息咱们自定义的类一般使用这个 }③Documented 这个注解只是用来标注生成javadoc的时候是否会被记录(了解就好)。 ④Inherited注解的作用是使被它修饰的注解具有继承性 (3).自定义注解 ①interface是用来声明一个注解的格式public interface 注解名{定义内容} ②其中的每一方法实际上是声明了一个配置参数 ③方法的名称就是参数的名称 ④返回值类型就是参数的类型返回值类型只能是基本数据类型Class,String,enum) ⑤可以通过default来声明参数的默认值 ⑥如果只有一个参数成员一般参数名称为value ⑦注解参数必须有值我们自定义注解元素时经常使用空字符串0作为默认值 三、自定义注解实现及测试 Controller.annotation: package Test.annotation;import Test.Test;import java.lang.annotation.*;//该注解可以应用于类、接口包括注解类型、枚举 Target(ElementType.TYPE)//ElementType.TYPE //该注解标记的元素可以被Javadoc 或类似的工具文档化 Documented //该注解的生命周期由JVM 加载包含在类文件中在运行时可以被获取到 Retention(RetentionPolicy.RUNTIME)//RUNTIME public interface Controller { } RequestMapping.annotation: package Test.annotation;import Test.Test;import java.lang.annotation.*;/*** author yhz*///该注解可以应用于类、接口包括注解类型、枚举 以及方法上 Target({ElementType.TYPE,ElementType.METHOD})//ElementType.TYPE //该注解标记的元素可以被Javadoc 或类似的工具文档化 Documented //该注解的生命周期由JVM 加载包含在类文件中在运行时可以被获取到 Retention(RetentionPolicy.RUNTIME)//RUNTIME public interface RequestMapping {String value()default ; } TestController.java package Test.controller;import Test.annotation.Controller; import Test.annotation.RequestMapping;/*** BelongsProject: SpringTest* Version: 1.0*/ Controller RequestMapping(test) public class TestController {RequestMappingpublic String index(){System.out.println(test-index);return ;}RequestMappingpublic String index1(){System.out.println(test-index1);return ;} } 如果把controller注解在方法上会报错原因是我们定义的controller注解只能写在类、接口、枚举上面。 Main.java 用于将该项目中被标记Controller注解的类创建实例并存入一个Map中。 package Test;import Test.annotation.Controller; import Test.annotation.RequestMapping;import java.io.File; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;/*** BelongsProject: 3.9.demo* Author: YHZ* CreateTime: 2023-07-22 14:36* Description: TODO* Version: 1.0*/ public class Main {public static ListStringarr new ArrayList();public static MapString,ObjectcontrollerMap new HashMap();static {String fileName E:\\SpringTest\\src;File file new File(fileName);getFilePath(file);try {chooseController();}catch (Exception e){e.printStackTrace();}}private static void getFilePath(File file) {File[] fs file.listFiles();for (File f : fs) {if (f.isDirectory()){getFilePath(f);}if (f.isFile()) {String filepath f.toString();filepath filepath.split(src)[1];filepath filepath.substring(1,filepath.length());if( filepath.endsWith(.java)) {//把是.java文件的全类名放到arr中arr.add(filepath.replace(\\, .).replace(.java, ));}}}}//查找所有controller并创建对象装入Map里“url”:Objectprivate static void chooseController() throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {for(String file: arr){Class? aClass Class.forName(file);if(aClass.isAnnotationPresent(Controller.class)){Object o aClass.getDeclaredConstructor().newInstance();RequestMapping annotation aClass.getAnnotation(RequestMapping.class);if(annotationnull){throw new RuntimeException(没有标记RequestMapping);}controllerMap.put(annotation.value(),o);}}} } 结果
http://wiki.neutronadmin.com/news/229054/

相关文章:

  • 河南省住房与城乡建设部网站莆田网站建设团队
  • 苏宁易购网站建设情况套别人代码做网站
  • 在哪个网站找装修公司快照不更新的原因
  • 网站开发范围说明书延吉手机网站建设开发
  • 个人简历wps模板免费seo是搜索引擎优化
  • 装修公司做网站有用吗只有网站才需要域名吗
  • 最专业的网站建设价格媒体网络推广价格优惠
  • 桂林尚品网络做的网站好不好一个公司可以做多少网站
  • 色一把看片网 做最好的在线看片网站jquery插件网站推荐
  • 毕设做购物网站容易吗苏州商城网站制作
  • 网站策划应该怎么做关于做公司官方网站域名申请
  • 网站费用多少网站怎么做移动图片
  • 做VIP视频网站赚钱支付宝手机网站支付二维码怎么做
  • 网站开发外包方案阿里云域名注册官网登录
  • 冕宁住房和建设局网站永久个人网站
  • 如何自己网站接装修生意做北京建设网站合同下载
  • 如何创建刷单网站上海优化排名网站
  • 网站建设上机考试深圳有做网站的吗
  • 福建住房和城乡建设网站网站建设用宝塔
  • 一个做外汇的网站叫熊猫什么的素材网免费
  • 机械网站怎么做discuz 转 wordpress
  • 消费者联盟网站怎么做一站式免费建站平台
  • 山东济南城乡建设厅网站wordpress 注册不了
  • 网站建设煊煊网网站开发我能做什么
  • 营销网站建站公司wordpress在线时间代码
  • 网站app生成软件开封到濮阳
  • 制作视频网站建设包头seo推广哪家专业
  • 杭州建设网 工程信息网站wordpress如何抓取
  • 做网站资质荣誉用的图片公司做的网站如何开启伪静态
  • 网站如何防止别人抄袭易语言如何做网站登录