optional

在自定义类中使用setMouseCallBack

╄→гoц情女王★ 提交于 2020-07-29 01:23:22
TOP    在opencv学习中教程中的鼠标回调函数的使用,都是在主函数中调用,但在自定义类中调用该函数时,会出现参数的类型与形参不匹配问题。最后在stackoverflow中找到了一些解决办法。 鼠标调用的函数为: 1 /* * @brief Sets mouse handler for the specified window 2 3 @param winname Name of the window. 4 @param onMouse Callback function for mouse events. See OpenCV samples on how to specify and use the callback. 5 @param userdata The optional parameter passed to the callback. 6 */ 7 8 CV_EXPORTS void setMouseCallback( const String& winname, MouseCallback onMouse, void * userdata = 0 ); ˇ参数1:winname即为在哪一个窗口调用该函数 ˇ参数2:onMouse是一个函数指针 ˇ参数3:用户传递的数据 其中第二个参数即为我们对鼠标实际操作的地方,在主函数调用的话正常定义调用就可以了

流式处理

假装没事ソ 提交于 2020-07-28 19:38:59
https://blog.csdn.net/qq_20989105/article/details/81234175 Java的Stream流式处理 Little Programmer 2018-07-27 11:21:18 65057 收藏 174 分类专栏: java 版权 在公司,看到大神写的代码优美而高效,其中之一就是对集合等数据结构大量使用了Stream流式操作,极大的提高编程效率和程序可读性。下面学习一下流式操作,在这里用博客记录一下。 ##为什么需要 Stream Stream作为 Java 8的一大亮点,它与 java.io 包里的 InputStream和 OutputStream是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用fork

使用Optional,不再头疼NPE

ぐ巨炮叔叔 提交于 2020-07-28 17:30:39
前言 在 Java 语言开发中,可能大多数程序员遇到最多的异常就是 NullPointException 空指针异常了。这个当初语言的开发者“仅仅因为这样实现起来更容易”而允许空引用所带来的代价是非常惨痛的。而我们开发者不得不使用多重 if 嵌套判断来规避 NPE 或者通过多个 if 结合 return 语句来终止程序。且看一个例子 假如需要处理下面的嵌套对象,这是一个用于汽车、汽车保险的客户。 public class Person { private Car car; public Car getCar() { return car; } } public class Car { private Insurance insurance; public Insurance getInsurance() { return insurance; } } public class Insurance { private String name; public String getName() { return name; } } 那么下面的代码会存在怎样的问题呢? public String getCarInsuranceNames(Person person) { return person.getCar().getInsurance().getName(); } 没错

【Java8新特性】不了解Optional类,简历上别说你懂Java8!!

余生颓废 提交于 2020-07-28 08:53:52
写在前面 最近,很多读者出去面试都在Java8上栽了跟头,事后自己分析,确实对Java8的新特性一知半解。然而,却在简历显眼的技能部分写着:熟练掌握Java8的各种新特性,能够迅速使用Java8开发高并发应用!这不,又一名读者因为写了熟练掌握Java8的新特性而被面试官虐的体无完肤!我不是说不能写,可以这样写!但是,咱在写熟练掌握Java8新特性的时候,应该静下心来好好想想自己是否真的掌握了Java8。如果自己心中对是否掌握了Java8这个问题模棱两可的话,那确实要好好静下心来为自己充电了!一定要从模棱两可到彻底掌握Java8,那到时就不是面试官虐你了,而是你吊打面试官!! 什么是Optional类? Optional 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。 Optional类常用方法: Optional.of(T t) : 创建一个 Optional 实例。 Optional.empty() : 创建一个空的 Optional 实例。 Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例。 isPresent() : 判断是否包含值。 orElse(T t) :

MongoDB学习(四) --- MongoDB 整合Spring Data

天涯浪子 提交于 2020-07-28 07:48:59
1、环境搭建 步骤一:修改pom文件,更新依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> 步骤二:修改yml文件,配置 mongo连接字符串 spring: data: mongodb: uri: mongodb://root:1234@localhost:27017/admin 步骤三:编写 JavaBean,配置文档对应集合 package com.tqyl.domain; import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; /** * @author

protocol buffer 基础

爱⌒轻易说出口 提交于 2020-07-28 06:11:15
我们知道接口传输数据的格式有XML,它是 web services 使用的传输数据的格式,在web services 中叫 WSDL。 https://www.w3school.com.cn/wsdl/index.asp 不过 web Services 已经是被淘汰的技术了。 现在更是主流的是使用JSON作为数据传输格式。HTTP + JSON是黄金搭档。 什么是protocol buffer protocol buffer是一种与语言和平台无关。 Protocol Buffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。 protocol buffer 是如何使用 定义 xx.proto 文件,即 接口数据格式。 使用 proto 命令生成对应语言脚本。 通过语言脚本设置接口要发送/接收的数据。 定义 .proto 文件, 创建一个 foo.proto 文件中定义你需要做串行化的数据结构信息。每个ProtocolBuffer信息是一小段逻辑记录,包含一系列的键值对。 这里定义一个简单的 foo.proto 文件定义了个人信息: syntax = "proto2"; package info; message

Redis-初体验/数据结构

孤街浪徒 提交于 2020-07-28 03:48:01
定义: Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种 NoSQL(not-only sql,泛指非关系型数据库)的数据库。 特点: 性能优秀,数据在内存中,读写速度非常快,支持并发 10W QPS。单进程单线程,是线程安全的,采用 IO 多路复用机制。丰富的数据类型,支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载。主从复制,哨兵,高可用。可以用作分布式锁。可以作为消息中间件使用,支持发布订阅 Redis内部内存对象管理 ! redis内存管理 Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value,结构如下 typedef struct redisObject{ //对象的数据类型(String/Hash/List/Set/Zset) unsigned type:4; //表示redisObject对象的底层编码实现,主要有简单动态字符串,链表,字典,跳跃表,整数集合以及压缩列表, unsigned encoding:4; //指向底层数据结构的指针 void *ptr; //引用计数器,初始值为1

Azure Web App (三)切换你的Net Core Web 项目的数据库连接字符串

半世苍凉 提交于 2020-07-27 22:40:06
一,引言   上一篇文章讲到今天我们演示了一下,如何在Web App中创建 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到创建的Web App中创建的新的部署槽位中,同时也引出了另外一个问题,环境变量怎么切换,切换槽位后,生产环境的数据库连接字符串怎么办。下一篇文章,我会继续 部署槽,进行配置部署槽设置,同时在交换槽位的时候,测试环境/生产环境都能够准确的连接到对于的数据库。😎😎😎😎😎 --------------------我是分割线-------------------- Azure Web App 部署系列: 1,Azure Web App(一)发布你的Net Core Web 项目 2,Azure Web App(二)使用部署槽切换部署环境代码 3,Azure Web App(三)切换你的Net Core Web 项目的数据库连接字符串 二,正文 1,新建Net Core Web 项目 项目名称 “CnBateBlogWeb” 选择 “Web 应用程序(模型视图控制器)”,去掉 “为HTTPS 配置” 的勾选,点击创建 删除 “launchSettings” 文件中 IIS 配置部分 添加一个名叫 “appsettings.Production.json” 配置文件,里面当前项目的生产环境的数据库连接字符串。 ”appsettings

OC项目转Swift指南

情到浓时终转凉″ 提交于 2020-07-27 13:53:49
运行环境:Xcode 11.1 Swift5.0 最近参与的一个项目需要从Objective-C(以下简称OC)转到Swift,期间遇到了一些坑,于是有了这篇总结性的文档。 如果你也有将OC项目Swift化的需求,可以作为参考。 OC转Swift有一个大前提就是你要对Swift有一定的了解,熟悉Swift语法,最好是完整看过一遍官方的 Language Guide 。 转换的过程分自动化和手动转译,鉴于自动化工具的识别率不能让人满意,大部分情况都是需要手动转换的。 自动化工具 有一个比较好的自动化工具 Swiftify ,可以将OC文件甚至OC工程整个转成Swift,号称准确率能达到90%。我试用了一些免费版中的功能,但感觉效果并不理想,因为没有使用过付费版,所以也不好评价它就是不好。 Swiftify还有一个Xcode的插件 Swiftify for Xcode ,可以实现对选中代码和单文件的转化。这个插件还挺不错,对纯系统代码转化还算精确,但部分代码还存在一些识别问题,需要手动再修改。 手动Swift化 桥接文件 如果你是在项目中首次使用Swift代码,在添加Swift文件时,Xcode会提示你添加一个 .h 的桥接文件。如果不小心点了不添加还可以手动导入,就是自己手动生成一个 .h 文件,然后在 Build Settings > Swift Compiler -

postgresql——SQL update fields of one table from fields of another one(列的批量更新)

安稳与你 提交于 2020-07-27 13:00:54
https://stackoverflow.com/questions/18797608/update-multiple-rows-in-same-query-using-postgresql 问题描述: SQL update fields of one table from fields of another one I have two tables: A [ID, column1, column2, column3] B [ID, column1, column2, column3, column4] A will always be subset of B (meaning all columns of A are also in B ). I want to update a record with a specific ID in B with their data from A for all columns of A . This ID exists both in A and B . Is there an UPDATE syntax or any other way to do that without specifying the column names , just saying "set all columns of A" ? I'm using