首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

定义注解判断参数

最近在项目中遇到了一个小小的问题,和大家分享一下,简单的接口但是在不同的业务场景下需要有不同的校验逻辑,有的参数在特定的场景下需要校验,有的参数在另外的场景下则不需要校验。...利用了自定义注解的方式。废话不多说给大家看一下核心代码。...* 自定义注解校验参数 */ @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Inherited @...但是在我们的业务场景中多个参数接口使用的参数类是同一个,所以使用Spring的@Valid和@Validated自然是不行了。...其实换种想法也不是不可以那就是检验参数的再新建一个类,我觉得完全没必要,因为这样很容易就造成类爆炸。不知你是怎么样呢。欢迎评论。

21010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS如何使用隐藏控件表单添加参数

    /fontend/js/24-hide-input-params/ 01 原生js 对于不显示在界面上的元素,但在提交表单时,却又要携带上去,是有这种需求的,比如用户修改某件商品信息时,商品的id,商品的...id并不是用户想要关心的 但是这个id又是数据库表格的标识,往往是一个必传的字段,因此使用隐藏变量把这个参数隐藏起来,可以很好的解决这个问题 具体如下代码所示 // 展示表单参数的函数 function...var str = "表单将提交的参数包括" // 定义字符拼接变量 // 拼接年份参数 str += '\n年份:'+document.forms[0].myyear.value...showParams()" /> 02 Vue版本实现 如下是vue方式实现,其实都是类似的 <el-form :inline="<em>true</em>...,有时是需要传给后端的,传统的方法,隐藏表单的数据,然后在提交时,传递给后端,是<em>一个</em>比较常见的操作

    11K40

    定义CancelEventArgs类,封装事件参数信息,实现e.Cancle=true取消机制。

    EventArgs类,封装事件参数信息   public class ActionCancelEventArgs:System.ComponentModel.CancelEventArgs       ...//2.定义委托          public delegate void ActionEventHandler(object sender, ActionCancelEventArgs ev);  ...       //3.声明事件(用到委托类型)          public static event ActionEventHandler Action;           //4.定义事件处理函数...                   time = "The time is "+DateTime.Now.ToLongTimeString();                   retVal = true...ActionCancelEventArgs();             OnAction(this, cancelEvent);             //抛出事件后,将根据询问订阅者是否取消事件的接受e.Cancle=False/True

    69010

    Js如何创建一个定义对象

    前言 JS中分两种数据类型,一种是基本数据类型,另外就是复杂数据类型,在描述一个事物对象,当比较复杂时,一般可以用数组和对象来存储 在Js中的对象,指的是一系列互相嵌套的键值对,在做web开发时,大多数控件都是以对象或数组的形式来提供给开发人员使用...在Js当中有一些方法,如下所示 01 方法1-使用文本字面量形式 这种方法创建对象是比较直接,常见的一种方式,就是使用大括号的方式,可以看做是js对象的本本标识,也就是说,可以通过输出字符串的形式来了解对象有哪些键值对...,它也是JSON形式,用于js的数据存储和传递,给对象添加属性和添加方法 如下代码所示 // 用大括号创建对象的方法,这种方法最常见,使用最频繁 var obj1 = {}; // 使用大括号创建一个内容空的对象...; 当值函数时,那么对象下面绑定的就是方法,使用函数的作用厉害之处,除了可以复用代码,另一个就是可以接收传递参数 02 方法2-使用构造器函数创建对象 创建构造器函数创建对象也是一种创建对象的方法...); } // 调用对象的函数/方法 obj3.webSite(); 总结 创建对象,有三种方式,其中第一种字面量创建对象的方式最常见和简单,直观,每一种方式创建对象都有自己的好处,比如动态的设置参数

    4.6K20

    链表的定义、确定一个链表需要几个参数

    离散存储【链表】   定义:     N个节点离散分配 彼此通过指针相连 每个节点只有一个前驱节点,每个节点只有一个后驱节点。...首节点没有前驱节点,尾节点没有后续节点 专业术语:   首节点:      第一个存放有效数据的节点(有效节点)   尾节点:     最后一个有效节点   头结点:     一般加首节点前面,不存放有效数据...尾指针:      指向尾节点的指针变量   确定一个链表需要几个参数?/通过一个函数对链表进行处理,至少需要接收链表的哪些参数?     ...只需要一个参数:头指针 因为可以通过头指针可以推算出链表的其他所有参数

    52410

    js 判断一个 object 对象是否

    js 判断一个 object 对象是否空 转载原文 判断一个对象是否空对象,本文给出三种判断方法: 1.最常见的思路,for...in......遍历属性,真则为“非空数组”;否则为“空数组” for (var i in obj) { // 如果不为空,则会执行到这一步,返回true return true } return false...if (JSON.stringify(data) === '{}') { return false // 如果空,返回false } return true // 如果不为空,则会执行到这一步...如果我们的对象空,他会返回一个空数组,如下: var a = {} Object.keys(a) // [] 我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否空。...,返回true 作者:言墨儿 链接:http://www.jianshu.com/p/972d0f277d45 转载补充: 原文中的代码,是写在一个 function 中的。

    10K11

    C++核心准则T.10:所有的模板参数定义概念

    石竹 T.10: Specify concepts for all template arguments T.10:所有的模板参数定义概念 Reason(原因) Correctness and readability...一个模板参数的假定含义(语法和语义)是模板接口的基础。概念大幅度改善了模板的文档化和错误处理。模板参数定义概念是一个强有力的设计工具。...If you use GCC 6.1 or later, you can uncomment them: “概念”被ISO技术规格:concepts定义。...一套标准库concepts的初步版本可以在另一个ISO技术规格:ranges中找到。GCC6.1以后都支持concepts。...它应该被极少使用,仅限于表现“它是一个类型”。这通常只在我们操作纯表达式树,延迟类型检查时有(作为模板元编程的一部分)存在的必要。

    57410

    alias 自定义参数——实现一个删除备份的指令

    auto' 当我们使用 ls 的时候,通常可以发现,目录 和 文件是不同的颜色的,其实普通的 ls 默认是没有颜色的 你可以取消别名后试试 或者直接使用 \ls ,其中 \ 是转义,即不使用别名 所以第一个作用就是对于一些命令的常用参数进行预设...,可以简化指令,同时,当你自己指定参数的时候,是会覆盖别名的预设参数的,比如 ls --color=none就可以取消 颜色 的显示 自定义一些复杂的指令 平时我们也许会用到多个命令的组合,这个时候也可以使用...比如我们平时删除文件 rm -rf 很容易造成一些不可逆转的后果,这个时候我们可以自定义一个 别名,让他帮我们完成备份并删除的功能。...但是,别名是不支持一些复杂逻辑的,所以需要另外想一个办法来实现,通常我们可以自定义一个函数,再将别名指向这个函数来完成这些操作,比如传参,命令组合什么的,下面就是一个 备份删除的列子 function...对于简单的函数,也可以这样 alias t_alias='test(){ echo $1;};test' 就完成了一个 别名的定义

    1.1K10

    【最佳实践】多参数,用一个数组还是分开定义

    现在 PHP、Go 写的比较多,之前常被参数多的问题所困扰,近期 Go 写多了后有一些感悟。 先说结论 分类合并,同类参数合并为数组(Go 中定义 struct 结构体),不同类分开定义。...例: 参数 school_name,school_address,study_name,study_gender,需调用函数做逻辑处理。...伪代码: 函数定义: function anonymous(school, study); 调用点: school = [school_name, school_address]; study = [...PHP 中这个场景都平铺开来,字段很多,参数位会变得难以阅读,字段一多就想定义成数组算了,但都聚合起来又无法直观认识这个数组中可塞什么字段。...当然,不用 array 可以定义 Class,但参数这么定义感觉太重了。 Go 用结构体没有数组黑盒烦恼,这点 Go 确实更加优雅! 综上,可按同类合并思维进行处理,就这么办吧 :)

    12310

    JS中函数的本质,定义、调用,以及函数的参数和返回值

    :字面量定义、构造函数定义 //字面量定义 function add(n1,n2){ } //构造函数定义 new Function("n1","n2","...."); 函数和对象一样,可以添加属性和方法...add(); function add(){ return 1; } 用var赋值表达式创建的函数,如果先调用,再创建,会报错 因为var在预解析时赋值undefined add();...: 由于js中没有块级作用域,所以依然是处于全局作用域中 都会出现预解析中函数被提前声明 if(true){ function fn1(){ } }else{ function fn2(){...arr[0]=1; 函数的间接调用 .call 第一个参数是改变this的指向,后面传递参数的方式就是一个一个传 .apply 第一个参数是改变this的指向,后面传递参数的方式是通过数组来传递...什么做参数 1、没有参数 2、数字做参数 3、字符串( 如选择DOM节点,$("p") ) 4、布尔值(保持函数的纯洁性,建议一个函数只做一件事情) 5、undefined(可选参数必须放在最后) 6、

    17.6K20

    Arrays.sort()为什么不定义接收一个Comparable[]数组?

    Arrays.sort()为什么不定义接收一个Comparable[]数组?   ...众所周知,在Arrays.sort()方法中,有一个重载方法:Arrays.sort(Object[] a)。   ...这个方法要求Object[]数组中每一个元素都要实现Comparable接口,即提供compareTo(Object other)方法。一旦有某个元素没有实现该接口,将有可能抛出类型转换异常。   ...那么问题来了,为什么不强制要求传入一个Comparable[]数组呢?这样的话不就能够保证数组中每个元素都实现Comparable接口了吗? 1....比如下面这个数组: Object[]arr={ "hello","world" }; 它的实际类型就是Object[](大括号的简写法相当于Object[]arr=newObject[]{…};,因此其实例化类型Object

    37310
    领券