go代码移植java技巧

编码方式差异
1、多返回值
java本身不支持多返回值,
正统的方式:定义返回结构(class)将多个返回值添加进去
快捷方式:参数中添加长度为1的返回类型数组,方法返回前写入额外返回值


image.png
image.png

2、参数传递函数
java中不支持方法(函数)作为参数、变量,可以包装成接口对象,进行传递(java自带的接口定义不满足时,需要自行定义接口)。


image.png

建议接口中,只定义一个方法,保证可以使用lambda表达式书写匿名内部类实例


image.png

当直播传递方法时,可以直接写为方法引用


image.png
image.png

高效批量处理
1、if、for批量补括号
java中 if for 关键词后的括号无法省略,复制golang代码时,可以先进行正则替换 (if|for) ([^{]+) 替换为1 (2)
如js的写法:

image.png

2、参数列表中,类型、参数名对换
先进行正则查询 (([^\n]+));再进行正则替换 ([^\s,)]+) ([^\s,)]+) 替换为 21
可以同时换一些基本类型
如js的写法:

image.png

建议编写个文本处理工具(如基于本地网页,编写js程序)
处理前:


image.png

处理后:


image.png

3、DTO、VO批量生成
golang中,同一个文件中可以编写多个结构体,java中每个文件只允许编写一个公共类。
使用我自制的chrome插件——yapi结构定义代码批量生成时,golang可以粘贴到一个文件。

image.png

java由于要分文件,采用了生成echo追加命令,手动在命令行中粘贴执行,得到多个文件。


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容