返回值

简单看看@RequestBody注解原理

廉价感情. 提交于 2019-12-04 16:03:37
又到了很无聊的时候了,于是随便看看源码假装自己很努力的样子,哈哈哈;   记得上一篇博客随便说了一下RequestBody的用法以及注意的问题,这个注解作为非常常用的注解,也是时候了解一波其中的原理了。   温馨提示:阅读本篇博客,默认你之前大概看过springmvc源码,懂得其中的基本流程 1.HttpMessageConverter接口    这个接口就是@RequestBody和@ResponseBody这两个注解的精髓,我们就先看看这个顶层接口定义了哪些方法: public interface HttpMessageConverter<T> { //判断当前转换器是否可以解析前端传过来的数据 boolean canRead(Class<?> clazz, @Nullable MediaType mediaType); //判断当前转换器是否可以将后端数据解析为前端需要的格式 boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType); //当前转换器能够解析所有的数据类型 List<MediaType> getSupportedMediaTypes(); //这个方法就是读取前端传过来的数据 T read(Class<? extends T> clazz, HttpInputMessage

学习与使用 Java 中的 Optional教程详解

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 15:33:32
前言:   在公司中开发项目时碰到一个从Java8引入的一个Optional类,以前jdk版本使用的比较低,没有使用过,于是我在网上浏览了一些文档写篇文章学习总结一下,希望没有用过的朋友们都能够快速学习到。 Optional 被定义为一个简单的容器,主要解决的问题是开发中常见的空指针异常,本质上这是一个包含有可选值的包装类,在Java 8之前一般某个函数应该返回非空对象但是偶尔却可能返回了null,而在Java 8中,不推荐你返回null而是返回Optional。   我们从一个简单的用例开始。 User user = ... if (user != null) { String userName = user.getUserName(); if (userName != null) { return userName.toUpperCase(); } else { return null; } } else { return null; }      从以上可以看出,对象字段比较多很容易就变得冗长,难以维护,我相信学完Optiona类完全可以简化这段代码。 Optional方法快速查看文档 Optional类的常用方法详解 of 为非null的值创建一个Optional。of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null

函数的返回值

妖精的绣舞 提交于 2019-12-04 15:32:09
函数的返回值 一、什么是返回值? 函数内部代码经过一些列逻辑处理获得的结果。 def func(): name = 'nick' return name name = func() print(name) nick 二、为什么要有返回值? 现在有一个需求,比较两个人的月薪,然后想获取月薪较大人的年薪。 如果需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须要有返回值。 需要注意的是: return是一个函数结束的标志,函数内可以有多个return,只要执行到return,函数就会执行。 return的返回值可以返回任意数据类型 return的返回值无个数限制,即可以使用逗号隔开返回多个值 0个:返回None 1个:返回值是该值本身 多个:返回值是元组 # 为什么要有返回值 def max_self(salary_x, salary_y): if salary_x > salary_y: return salary_x else: return salary_y max_salary = max_self(20000, 30000) print(max_salary*12) 360000 # 函数返回多个值 def func(): name = 'nick' age = 19 hobby_list = ['read', 'run'] return name, age,

MyBatis:统计数量(查询所有)

被刻印的时光 ゝ 提交于 2019-12-04 14:59:33
返回值的类型:resultType="java.lang.Integer"。 <select id="count" resultType="java.lang.Integer"> SELECT count(1) FROM account </select>MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,将数据库列数据复制到对象的相应属性上,可以用于复制查询,两者不能同时用。 resultMap:适合使用返回值是自定义实体类的情况 resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型 来源: https://www.cnblogs.com/renxinghua/p/11870463.html

eclipse常用快捷键

北城余情 提交于 2019-12-04 14:06:25
删除一行: ctrl+d 自动生成返回值: List<ShareholderEntity> shareList = fetch.parseShareHolder(data); 如何自动生成 List<ShareholderEntity> shareList 将光标放在;后面按ctrl+1,弹出 Assign statement to new local varible,enter即可. 来源: https://www.cnblogs.com/RuiGe1103767421/p/11869567.html

最新数组方法(包括es6)

别来无恙 提交于 2019-12-04 13:53:54
热爱前端的17号诶 积跬步以致千里 积怠惰以致深渊 博客园 首页 新随笔 联系 管理 随笔 - 58 文章 - 2 评论 - 65 最新数组方法(包括es6) for...of 是 ES6 新引入的循环,用于替代 for..in 和 forEach() ,并且支持新的迭代协议。它可用于迭代常规的数据类型,如 Array 、 String 、 Map 和 Set 等等。 整理目前所用过的数组方法,学习了新增的es6方法。 1 arr.push() 从后面添加元素,返回值为添加完后的数组的长度 let arr = [1,2,3,4,5] console.log(arr.push(5)) // 6 console.log(arr) // [1,2,3,4,5,5] 2 arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素 let arr = [1,2,3,4,5] console.log(arr.pop()) // 5 console.log(arr) //[1,2,3,4] 3 arr.shift() 从前面删除元素,只能删除一个 返回值是删除的元素 let arr = [1,2,3,4,5] console.log(arr.shift()) // 1 console.log(arr) // [2,3,4,5] 4 arr.unshift() 从前面添加元素,

javascript(4)

狂风中的少年 提交于 2019-12-04 12:11:44
函数 为什么要有函数? 在写代码的时候,有一些常用的代码需要书写多次,如果直接复制粘贴的话,会造成大量的冗余代码。 如果修改呢?? 多个页面呢?? 函数可以封装一段重复的JavaScript代码,它只需要声明一次,就可以被多次调用。 重复代码、冗余代码的缺点: 代码重复,可阅读性差 不易维护,如果代码逻辑改变了,所有地方的代码都要跟着改变,效率太低。 使用场景 : 只要js出现的地方都有函数 ​ 函数的声明与调用 就相当于之前数组的创建和使用 声明函数的语法 : function 函数名() { // 函数体 } 调用函数的语法 : 函数名 函数名() 特点: 1. 函数声明的时候,函数体并不会执行,函数体只有在调用的时候,才会执行; 2. 可以调用多次; 代码示例 : // 声明函数 function sayHi() { console.log('萨瓦迪卡'); } // 调用函数 sayHi(); 练习 : //1. 封装一个打招呼的函数 //2. 封装一个函数,计算两个数的和 //3. 封装一个函数,计算1-100之间所有数的和 函数的参数 ​ function getSum() { ​ var a = 10; ​ var b = 20; ​ console.log(a+b); } ​ // 打印的是 10+20 ​ getSum(); ​ // 想打印 20+30? 怎么办

三元表达式

删除回忆录丶 提交于 2019-12-04 11:59:29
三元表达式 语法 : 条件成立时的返回值 if 条件 else 条件不成立时的返回值 x = 10 y = 20 print(f"x if x > y else y: {x if x > y else y}") x if x > y else y: 20 来源: https://www.cnblogs.com/Dr-wei/p/11862605.html

python 入门

ぃ、小莉子 提交于 2019-12-04 11:53:28
python 入门 第一天 1.python环境的安装 1.下载www.python.org 2.安装,注意勾选add path 3.测试 cmd->python 2.pycharm 的安装 1.下载www.jetbrains.com/pycharm 2.安装 3.第一个python程序 1.创建项目 2.创建py文件 编写代码:print("hello world") 执行: ctrl+shift+f10 4.xmind的学习 1.Tab 建立子节点 2.Enter 建立同级节点 第二天 1.编程三部曲 1.明确需求 我要干什么? 2.分析思路 我该怎么做? 3.代码实现 将每个代码用python实现 2.语言的发展史 1.机器语言 打孔机 2.C语言 命令式 3.C++ 面向对象 4.C# Java 垃圾回收 中间指令编译 5. python php js 脚本式 3.什么是python 1.python是一门面向对象的脚本语言,可以速度轻松的把其他语言结合起来 2.python可读性极强,是一门结合了解释性,编译性,互动性和面向对象的脚本语言 4.注释 单行注释 # Ctrl+/ 多行注释 ''' ''' 5.标识符 命名规则 1.由数字 字母 下划线 组成 2.不能由数字开头 3.不能使用python关键字 4.长度没有限制,但要有意义 5.严格区分大小写 6.变量

Java里的参数类型/返回值类型

怎甘沉沦 提交于 2019-12-04 11:51:27
参数类型/返回值类型: ##数据类型: ###基本类型: ###引用类型: ####数组 ####类 ####接口 参数类型/返回值类型是类和接口的情况: 1.参数类型是普通类的情况 为什么写成静态,因为main是静态的,如果show是非静态的,那么main是无法调用的。静态的是先人,先进内存。非静态的是后人 2,参数类型是抽象类的情况 当你看到的参数是抽象类的时候,需要传递的是这个类的子类对象,她是抽象类是不能创建对象的。 3,参数类型是接口的情况 当你看到方法得参数是接口的时候,需要传递的是这个接口的子类对象,她是接口不能创建对象 来源: https://www.cnblogs.com/maomaodesu/p/11861158.html