PyCharm中导入ROS项目无法引入依赖

Pycharm中引入依赖的方式 设置项目依赖的python版本:点击File-Settings-Project: ,选择项目需要依赖的python版本,应用 手动添加其他依赖:在上一步选择python版本的下拉中选择最后一项Show All... ,在新窗口中选择项目所依赖的python版本,点击最右下角图表显示所有依赖的路径,添加即可 无法引入依赖通常包含三个方面: ros依赖,如rospy等 ...

阅读更多

win7下安装Ubuntu系统

0,在windows系统下,进入计算机管理,磁盘管理,选择准备划分部分空间用来安装Ubuntu系统的分区,一般是剩余容量比较多的分区,比如说E盘,右键压缩卷,输入压缩的空间量用于安装,不要分完了,因为要留点空间给原来的分区用。点击压缩,该分区出现一个未分配空间就完成了(可以右键新建简单卷给该未分配空间划分新的分区用于windows使用,由于我们要用于安装系统,所以就不必了) 1,下载ubuntu-...

阅读更多

日志的打印策略和动态控制输出级别

日志是平时开发中都会用到的,这里以logback为例,总结几点笔者使用的几点经验 日志的打印 一般来说方法和远程调用的入参,出参和错误的异常栈是必须要打印的,打印异常最好同时以打印入参出参,因为有的入参出参是DEBUG的,线上不会打印,另外完成一些重要逻辑也需要打印,以便追踪当前方法执行的阶段。 入参,出参,异常这类常用的日志打印可以提供一个字符串工具,以减少重复代码,提高效率。 这是我写的工具:...

阅读更多

使用IDEA的Shelve Changes保存和还原本地更改

在实际项目开发中,当我们一个功能没有开发完成,这时需要优先处理当前项目下别的问题,为了避免不同功能的代码修改混在一起,常把未完成的修改提交到一个本地的新分支或者新建一个本地分支用于处理优先问题。 IDEA提供了shelf功能,翻译过来就是架子,即存放更改的地方。 在Version Control中的Local Changes标签,右键可以使用shelve changes将当前修改回退并暂存下来,并...

阅读更多

使用Spring拦截器作权限控制

SpringMVC拦截器中的preHandle方法的传入参数handler可以用于获取当前执行方法的相关信息,例如方法,参数,返回值,注解等。 在方法上使用注解传入权限码,然后通过request拿到登录标识,用登录标识,请求链接验证当前用户是否拥有所访问方法所需的权限码,从而拦截或不拦截,达到权限控制的目的。 以下为示例,注释已经比较清楚了 @Override public boolean pre...

阅读更多

Java的泛型擦除

官方文档介绍了泛型擦除: https://docs.oracle.com/javase/tutorial/java/generics/erasure.html 翻译过来就是 用类型参数的上界或者Object(如果没有上界)替换类型参数,产生的字节码仅包含普通的类,接口和方法 如有必要,插入强制类型转换以保证类型安全 生成桥接方法以保留扩展泛型类型中的多态性 以下可以验证运行时的类型擦除和编译的强制...

阅读更多

自动生成接口响应数据方便前后端同步开发

在前后端分离的场景中,后端提供接口,待开发联调完成后才能给到数据给前端,这样降低了效率并且给前端带来不便,传统的解决方式就是手动写接口的返回,然后注册网关测试数据。这样前后端可同时开发联调,但是如果响应数据的字段比较多,手动写的方式比较耗时,最近发现一个工具可以自动生成测试数据,并且支持泛型,免去了手写的烦恼。 官网地址:https://mtedone.github.io/podam/ 工具名字叫...

阅读更多

使用CompletionService非阻塞获取并行任务执行结果

以用户个人页面举例,用户信息由若干部分元素组成,每部分元素需要单独调用一次远程接口且各部分无逻辑关联。使用传统的方式串行的调接口并且阻塞地获取执行结果,相当耗时,可使用CompletionService多线程并且非阻塞地获取并行任务执行结果。 示例代码 @Override public BaseResult...

阅读更多