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

一文读懂《Effective Java》第43条:返回零长度数组或集合,不是null

对于一个返回null 不是零长度数组或者集合方法,客户端几乎每次用到该方法都可能会忘记写专门处理null 返回代码,进而导致NPE。...返回值为null 与性能 有时候会有程序员认为:null 返回值比零长度数组更好,因为它避免了分配数组所需要开销,但这种观点站不住脚。...在返回值这种级别上担心性能问题是不明智,除非分析表明这个方法是造成性能问题真正源头 对于不返回任何元素调用,每次返回同一个零长度数组是有可能,因为零长度数组不可变不可变对象可能被自由共享...,没理由返回null,二是返回一个零长度数组或者集合。...Java 返回值为null 做法,很可能是从C 语言沿袭过来,在C 中,数组长度是与实际数组分开返回,如果返回数组长度为0,再分配一个数组就没有任何好处了。

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

踩坑ThinkPHP5之模型对象返回数据集如何转为数组

防雷——tp5模型操作数据库 各位小伙伴们大家好,冷月今天在做项目的过程中呢,遇到了一个坑就是用tp5模型操作数据库时,返回数据不是直接数组。于是冷月就想办法如何将数据集转为数组。...写下这篇博文,防止大家遇到这个坑时可以更快解决。 首先让我们来看一下这个坑 冷月在控制器中定义了一个方法来操作模型,如下图: ? 然后,返回数据不是可以直接操作数组: ?...然后我试着利用toArray()这个方法看看能不能转为数组: ?...再查阅资料和看tp5使用手册后,冷月发现将数据库配置database.php文件里resultset_type改为collection后,就可以解决这个问题。 ?...然后,同样代码成功返回想要数组: ? 最后啰嗦: 只要思想不滑坡,办法总比问题多 快去学习去~ 勤加练习,早日收获自己offer!

1.6K20

浅学前端:Vue篇(二)

-- prop属性:表格内部会遍历这个学生数组,那么学生对象哪个属性需要显示在这一列上就使用到了prop --> <el-table-column label="编号" prop...例子::page-sizes="[5,10,15,20]"如果加了:会正常解析成数组,但是如果没加:,就会当做字符串,不是解析成数组。...方式传参返回响应格式也许会很复杂,需要掌握【根据返回响应结构,获取数据能力3....,没有层级关系,后端的人可以直接返给你有层级关系数据,但是如果他们不想写,而是给你返回一维这种数组,那么前端就需要自己将这个一维数组转换成这种树状数据(这也是个基本功)。...下面的例子是将后端返回一维数组【树化】 <!

21540

一文让你认识 axios

('获取数据失败'); }); 当然,我们也可以发送一个POST请求,post方法第二个参数为请求参数对象。...console.log(res); }) .catch(function(err){ console.log(err); }); 一次合并发送多个请求 分别写两个请求函数,利用axiosall方法接收一个由每个请求函数组数组...我们完全可以通过调用axiosAPI,传递一个配置对象来发起请求。...原理:因为客户端请求服务端数据是存在跨域问题服务器和服务器之间可以相互请求数据,是没有跨域概念(如果服务器没有设置禁止跨域权限问题),也就是说,我们可以配置一个代理服务器可以请求另一个服务器中数据...,然后把请求出来数据返回到我们代理服务器中,代理服务器再返回数据给我们客户端,这样我们就可以实现跨域访问数据啦。

1K20

基于TypeScript封装Axios笔记(二)

a=1&b=2,这样服务端就可以通过请求 url 解析到我们传来参数数据了。实际上就是把 params 对象 key 和 value 拼接到 url 上。 再来看几个更复杂例子。...参数值为数组 1axios({ 2 method: 'get', 3 url: '/base/get', 4 params: { 5 foo: ['bar', 'baz'] 6 } 7})...isObject 函数呢,因为 isObject 判断方式,对于 FormData、ArrayBuffer 这些类型,isObject 判断也为 true,但是这些类型数据我们是不需要做处理...Buffer.concat(msg) 14 res.json(buf.toJSON()) 15 }) 16}) 我们接着在 examples/server.js 中添加 2 个路由,分别针对这俩种请求,返回请求传入数据...然后我们打开浏览器运行 demo,看一下结果,我们发现 /base/buffer 请求是可以拿到数据,但是 base/post 请求 response 里却返回是一个空对象,这是什么原因呢?

74410

二十.接口调用

// 在then方法中,你也可以直接return数据不是Promise对象,在后面的then中就可以接收到数据了 p.then(function(data){ console.log...数组对象(p1、p2、p3)均为promise实例(如果不是一个promise,该项会被用Promise.resolve转换为一个promise)。...不是ajax进一步封装,而是原生js,没有使用XMLHttpRequest对象。...(data){ // text()方法属于fetchAPI一部分,它返回一个Promise实例对象,用于获取后台返回数据 return data.text(); })...,如果响应正常返回,我们首先看到是一个response对象,其中包括返回一堆原始字节,这些字节需要在收到后,需要我们通过调用方法将其转换为相应格式数据,比如JSON,BLOB或者TEXT等等

6.7K10

腾讯前端vue面试题合集2

例如数组对象发生变化。...需要注意是,deep无法监听到数组对象内部变化。当想要执行异步或者昂贵操作以响应不断变化时,就需要使用watch。...Options API则通过声明组件选项对象形式编写组件Composition API最主要作用是能够简洁、高效复用逻辑。...,它返回渲染函数内部会查找内嵌component组件对应组件vnode,如果该组件在map中存在就直接返回它。...$set 实现原理是:如果目标是数组,直接使用数组 splice 方法触发相应式;如果目标是对象,会先判读属性是否存在、对象是否是响应式,最终如果要对属性进行响应式处理,则是通过调用 defineReactive

1.1K30

前端三大框架之Vue-day04

// 在then方法中,你也可以直接return数据不是Promise对象,在后面的then中就可以接收到数据了 p.then(function(data){ console.log...数组对象(p1、p2、p3)均为promise实例(如果不是一个promise,该项会被用Promise.resolve转换为一个promise)。...不是ajax进一步封装,而是原生js,没有使用XMLHttpRequest对象。...(data){ // text()方法属于fetchAPI一部分,它返回一个Promise实例对象,用于获取后台返回数据 return data.text(); })...,如果响应正常返回,我们首先看到是一个response对象,其中包括返回一堆原始字节,这些字节需要在收到后,需要我们通过调用方法将其转换为相应格式数据,比如JSON,BLOB或者TEXT等等

3.2K20

前端成神之路-vue04

// 在then方法中,你也可以直接return数据不是Promise对象,在后面的then中就可以接收到数据了 p.then(function(data){ console.log...数组对象(p1、p2、p3)均为promise实例(如果不是一个promise,该项会被用Promise.resolve转换为一个promise)。...不是ajax进一步封装,而是原生js,没有使用XMLHttpRequest对象。...(data){ // text()方法属于fetchAPI一部分,它返回一个Promise实例对象,用于获取后台返回数据 return data.text(); })...,如果响应正常返回,我们首先看到是一个response对象,其中包括返回一堆原始字节,这些字节需要在收到后,需要我们通过调用方法将其转换为相应格式数据,比如JSON,BLOB或者TEXT等等

3.7K10

Vue 09.前后端交互

// 在then方法中,也可以直接return数据不是Promise对象,在后面的then中就可以接收到数据了 p.then(function(data){ console.log(data...接收是data2地址返回结果 console.log(data) }); Promise 基本API 实例方法 .then() 得到异步任务正确结果 返回promise实例对象返回该实例对象会调用下一个...,所有任务完成后才得到结果 Promise.all方法接受一个数组作参数,数组对象(p1、p2、p3)均为promise实例(如果不是一个promise,该项会被用Promise.resolve转换为一个...fetch不是ajax进一步封装,而是原生js,没有使用XMLHttpRequest对象。...,如果响应正常返回,我们首先看到是一个response对象,其中包括返回一堆原始字节,这些字节需要在收到后,需要我们通过调用方法将其转换为相应格式数据,比如JSON,BLOB或者TEXT等等 fetch

6K30

前端MVC Vue2学习总结(六)——axios与跨域HTTP请求、Lodash工具库

内部封装了诸多对字符串、数组对象等常见数据类型处理函数,其中部分是目前 ECMAScript 尚未制定规范,但同时被业界所认可辅助函数。...在上面的代码中,开发者可以使用数组、字符串以及函数方式筛选对象属性,并且最终会返回一个新对象,中间执行筛选时不会对旧对象产生影响。...参数3): 迭代器中this所绑定对象.  返回值(Array): 映射后数组.  ... predicate条件第一个元素索引,不是返回元素本身.   ...lodash 对象以开启内置方法链.方法链对返回数组、集合或函数方法产生作用,并且方法可以被链式调用.

5.7K100

一比一还原axios源码(一)—— 发起第一个请求

params参数对象值a是一个数组,我们希望它url可以变成这样:"/c1/get?...参数值为对象: // params参数值为对象情况 axios({ method: "get", url: "/c1/get", params: { a: { b:...如果既不存在自定义转换方法又不是URLSearchParams对象,那么就会进入到我们自己逻辑里。   ...那如果是数组,就转换一下key,如果不是,就把值变成一个数组,因为后面,我们要循环这个key值,这块很重要,我们不仅要循环整个params对象,因为可能存在params值也是数据情况,所以,还要循环遍历在...这样,如果值是数组的话,就会拼凑一个一个key,刚好,之前我们把不是数组也变成数组里,就可以单纯对数组进行循环处理。

1.2K20

因为知道了Axios,使用Vue请求数据效率暴增!!!

Axios非常适合前后端数据交互,另一种请求后端数据方式是vue-resource,vue-resource已经不再更新了,且只支持浏览器端使用,Axios同时支持浏览器和Node端使用。.../axios/dist/axios.min.js"> ES6 import引用 因为axios不是vue插件,所以不能直接用use方法,需要将其加载到原型上。...('获取数据失败'); }); 发送一个POST请求 当然,我们也可以发送一个POST请求,post方法第二个参数为请求参数对象。...(res); }) .catch(function(err){ console.log(err); }); 一次合并发送多个请求 分别写两个请求函数,利用axiosall方法接收一个由每个请求函数组数组...,可以一次性发送多个请求,如果全部请求成功,在axios.spread方法接收一个回调函数,该函数参数就是每个请求返回结果。

1.1K10

Vue 前后端交互基础

这种应用模式比较适合纯网页应用,但是当后端对接 App 时,App 可能并不需要后端返回一个 HTML 网页,仅仅是数据本身,所以后端原本返回网页接口不再适用于前端 App 应用,为了对接 App...1.1.2 前后端分离   在前后端分离应用模式中,后端仅返回前端所需数据,不再渲染 HTML 页面,不再控制前端效果。...,每个数组元素都是一个 Promise 实例,当这个数组 Promise 实例全部返回时,方法执行结束 race(数组): 接收一个数组,每个数组元素都是一个 Promise 实例,当这个数组...Ajax 本质是使用 XMLHttpRequest 对象来请求数据 XMLHttpRequest 对象是通过事件模式来实现返回数据处理。...Fetch 不是 Ajax 进一步封装,而是原生 JS ,没有使用 XMLHttpRequest。

2K50

React学习笔记(三)—— 组件高级

:并不是渲染到页面中li标签需要key属性,(同时li标签也是没有关系,我们在这里之所有用到li标签,只是更形象说明问题,其实你也可以用div等等其它标签)之所要设置key属性,是React内部用来方便管理一个数组数据...)数组数据之间是独一无二不用是全局独一无二,例如,有两个数组,那么它们key就可以是一样。...是我们要投票帖子,则生成一个新对象,并更新投票数 //如果不是要找帖子,则直接返回 let newPosts = this.state.posts.map((item) =>...要编写一个非受控组件,不是为每个状态更新都编写数据处理函数,你可以 使用 ref 来从 DOM 节点中获取表单数据。...3.4.4、state与不可变对象 直接修改state,组件不会render;state包含所有状态都应该是不可变对象,当state中某个状态发生变化时,应该重新创建这个状态对象不是直接修改原来状态

8.2K20

axios笔记(一) 简单入门

支持携带参数 params 参数 query 参数 两种参数区别:query 参数是从所有的数据中筛选,所以最后是数组形式;params 参数则是特定查找形式,所以最后是对象形式...ajax 引擎帮忙发送) 浏览器端发送请求,只有 XHR 或 fetch 发出才是 ajax 请求,其他不是 ajax 请求 浏览器端接收到响应(一般请求浏览器会自动更新页面, ajax...请求需要手动更新) 一般请求:浏览器会直接显示响应体数据,即刷新/跳转页面 ajax 请求:浏览器不会对页面进行任何更新操作,只是调用监视回调函数并传入响应相关数据 3....封装 axios axios function axios({ url, method = "GET", params = {}, data = {} }) { // 返回Promise对象... GET 请求不需要,因为 GET 请求不需要修改服务器上资源 学习链接:尚硅谷_axios 核心技术

1.5K20

怎样刷vue面试题

Vue2.x 响应式数据原理整体思路是数据劫持+观察者模式对象内部通过 defineReactive 方法,使用 Object.defineProperty 来劫持各个属性 setter、getter...odefineReactive 层层遍历一直到value不是对象才停止 // 思考?...()方式定义数据拦截,当数据被访问或发生变化时,我们感知并作出响应;如果是数组则通过覆盖数组对象原型7个变更方法 ,使这些方法可以额外做更新通知,从而作出响应。...,前一个过滤器执行结果是后一个过滤器函数参数)编译后通过调用resolveFilter函数找到对应过滤器并返回结果执行结果作为参数传递给toString函数,toString执行后,其结果会保存在...最常见用法是结合v-bind做展开;$attrs本身不是响应式,除非访问属性本身是响应式对象

2K50
领券