I 前言

本次分享一下我所知道的如何写最少的代码的小技巧,如果你有更好的方案,欢迎在评论区留言,方案很棒的话,加我交流圈,为你送上冬天的一杯奶茶~

Java:我想返回多个返回值

秀一下Go的多返回值:

package main
import "fmt"// 返回 X + Y 和 X * Y
func Computer(X, Y int) (int, int) {return X + Y, X * Y
}

众所周知,Java仅支持单一返回值,一般情况下如果需要返回多个对象,我们会根据代码语义选择容器或者新建一个新的类,把我们需要的数据包起来。
这样做有没有问题?当然没有问题,但是瑕疵就在于:可能会产生没啥语义但又不得不存在的中间类,我个人非常讨论该类代码,那么该如何解决这种问题呢?
首先需要认识到,解决方案必须满足几个要求:

  • 代码可复用
  • 语义要清晰
  • 安全

既然如此,我们可以采用泛型来满足复用、语义清晰的要求,用中间类来满足代码安全性的要求,代码如下:

public class MultipleTwoReturn<A, B> {/** 第一个返回值 **/private final A first;/** 第二个返回值 **/private final B second;public MultipleTwoReturn(A first, B second) {this.first = first;this.second = second;}// 省略Get方法
}

同时,我们可以依赖于继承,让该工具类拓展更多的参数:

public class MultipleThreeReturn<A, B, C> extends MultipleTwoReturn<A, B> {/** 第三个返回值 **/private final C third;public MultipleThreeReturn(A first, B second, C third) {super(first, second);this.third = third;}
}

测试类:

public class MultipleApp {public static void main(String[] args) {MultipleTwoReturn<Integer, String> returnTest = MultipleApp.getReturnTest();System.out.println(returnTest.getFirst());System.out.println(returnTest.getSecond());}private static MultipleTwoReturn<Integer, String> getReturnTest() {MultipleTwoReturn<Integer, String> demo = new MultipleTwoReturn<>(0, "Kerwin Demo.");return demo;//加入Java开发交流君样:756584822一起吹水聊天}
}

本质还是普通对象,但是加上泛型后威力剧增!由于在方法定义时就强制了泛型约束,语义非常清晰,同时可以完全杜绝上述的无语义中间类,当然一些必要的,有业务含义的组装类,不建议使用这种方式。

泛型:我想new一个对象

想利用作为泛型约束,却需要new一个T,但是Java它new不出来啊

Java开发之上班摸鱼!写最少的代码!相关推荐

  1. 上班摸鱼用Python写一个酷狗音乐播放器

    Python改变生活,科技改变世界. 这个五一好想出去浪啊,可惜工作不允许啊,只放了两天假,不得不又回到工作岗位了,虽然也没啥事,然后就上班摸鱼写了这个酷狗音乐播放器,自己一边听歌一边下载歌曲歌词也蛮 ...

  2. 上班摸鱼在群里吹牛B,逮到一个华为10年老Java开发,聊过之后收益良多...

    老话说的好,这人呐,一单在某个领域鲜有敌手了,就会闲得蛋疼.前几天我在上班摸鱼刷群的时候认识了一位阿里JAVA开发大佬,在华为工作了10年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内有一定的地 ...

  3. 微信重大更新!这特么是为上班摸鱼开发的吧.....(附内测地址)

    来自:民工哥技术之路 近日,腾讯微信PC版迎来了2.9.0.测试版.相信很多人都会爱上这个功能!毕竟我怀疑是为上班摸鱼的那些小伙伴的开发的.... 此次更新增添了不少新功能.最引人注目的也是我期待已久 ...

  4. 上班摸鱼刘慈欣!《三体》等小说原来是这样被写出来的 官方点名回应...

    最近因为影片<流浪地球>的热度,其原著小说<流浪地球>和作者刘慈欣本人也是颇受关注.昨天,大刘就喜提两次微博热搜. 事情是这样的,有网友翻出了刘慈欣早年的采访视频,按照他当时的 ...

  5. python 斗地主 图形界面_上班摸鱼必备|Python开发命令行斗地主

    原标题:上班摸鱼必备|Python开发命令行斗地主 今天给大家带来的是如何上班如何高级摸鱼: 用Python开发一个命令行斗地主小游戏,利用跑程序的时间来一把斗地主岂不是非常快乐,关键是没有时间限制, ...

  6. Pygame实战:程序员小哥给女友写了一款锻炼反应能力的游戏,从此上班摸鱼再也没被扣工资。

    导语 上班摸鱼有没有玩游戏啊! 如果没有 那你也肯定没有玩坠落的小鸟主题游戏咯~ ​ 不过没有关系 木子这就放大图给你过过眼瘾: ​ ​​​ 看看这个界面还真有app游戏软件哪味儿了! 这个可是大人小 ...

  7. 白嫖我常用的 11 个超火的前端必备在线工具,终于有时间上班摸鱼了

    大家好,我是你们的 猫哥,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 前言 猫哥是一个常年混迹在 GitHub 上的猫星人,所以发现了不少好的前端开源项目,在此分享给大家. 公众号:前端GitHub,专 ...

  8. 张一鸣活捉上班摸鱼员工遭怒怼:不爽退群啊!

    12 月 9 日字节跳动 CEO 张一鸣发现公司<原神>群中出现一些员工在上班时间非常专注的聊游戏,对此表达了不满.张一鸣称,"虽然公司不禁止上班时间偶尔闲聊,但是连续几天都在游 ...

  9. GitHub开源了一款程序员摸鱼神器!上班摸鱼还不会被老板发现。。。

    点击上方"Github爱好者社区",选择星标 回复"资料",获取小编整理的一份资料 作者:GG哥 来源:GitHub爱好者社区(github_shequ) 这是 ...

最新文章

  1. Python Day34
  2. 死磕java并发cas_死磕 java并发包之AtomicInteger源码分析
  3. springboot的jsp应该放在哪_在springboot中集成jsp开发
  4. es 精确查询不模糊_ES系列17:Terms聚合结果不精确,怎么破?
  5. 超级好用的使用python批量更新MYsql,速度从一万条需要一天变道一万条需要10分钟左右
  6. 亲测有效!实现Chrome浏览器下载速度提升3倍!
  7. C# tcpClient发送和接收
  8. H5游戏开发-Egret引擎
  9. 风变python基础语法第11关_风变编程-Python基础语法
  10. 通过调用ffmpeg来将mp3和jpg合并为mp4视频-批处理。
  11. 杭州车牌摇号规则详细内容
  12. 简单翻译工具--必应词典第三方api使用方法
  13. 笔记本计算机无法开机怎么办,笔记本开机没反应,详细教您笔记本电脑开不了机怎么处理...
  14. 符合应急监管要求的危化品企业双重预防数字化系统
  15. Excel 2010 SQL应用105 域聚合函数之第一个和最后一个
  16. Guava中EventBus并发处理事件
  17. Citavi、Endnote、Mendeley 功能大比拼!到底哪一款才是众望所归的终极文献管理软件?
  18. log4jdbc-log4j2浅析(sqlfx客户端采集日志的来源)-java 输出sql执行时间
  19. SCSS常用语法总结
  20. 数学基础从高一开始1、集合的概念

热门文章

  1. EventStore文件存储设计
  2. 官博翻译 | .NET Core 即 .NET 的未来
  3. 领域驱动设计,让程序员心中有码(五)
  4. Entity Framework Core 使用HiLo生成主键
  5. 在ASP.NET Core上实施每个租户策略的数据库
  6. 【ArcGIS风暴】在ArcGIS中实现将一个圆16等分
  7. 地图投影系列介绍(二)----地理坐标系
  8. Android之替换App桌面图标
  9. Git之submodule使用总结
  10. Android之严苛模式(StrictMode)