Java编程小技巧(1)——方法传回两个对象
原文地址:Java编程小技巧(1)——方法传回两个对象 | Stars-One的杂货小窝
题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回
当有这样的情况,我们需要返回两个或多个对象,该怎么做呢?
1.多对象封装成单个类中的多个字段
这种方法详细各位都能理解,无非就是新建一个类,然后类里面再有几个字段即可
class MyResult {
Student student;
People people;
//省略get/set方法和构造方法
}
public MyResult test(){
Student student = new Student();
People people = new People();
return new MyResult(student,people);
}
但如果我们情况比较多的话,每次新建类都很麻烦,有没有更方便的一种使用呢?
当然是有的,我们可以使用Pair类
2.使用Pair类和MutableTriple类
Pair和MutableTriple都是lang3包中提供的,所以要使用,得先加入依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>
还是上面的例子,我们可以使用Pair改造一下
public Pair<Student,People> test(){
Student student = new Student();
People people = new People();
Pair<Student,People> pair = Pair.of(student, people);
return pair;
}
//获取数值
Student s = pair.getLeft();
People p = pair.getRight();
可以看到,我们无需声明一个新的类即可实现我们需要返回两个对象的需求
如果是三个对象,则是同理,只不过是使用到了MutableTriple,泛型接收三个
MutableTriple<String, Integer, String> pairs = MutableTriple.of("", 1, "");
//获取数值
String s = pairs.getLeft();
Integer i = pairs.getMiddle();
String s1 = pairs.getRight();
什么,你问我有没有四个对象的Pair类,那肯定是没有的
因为超过三个,官方都推荐新建个类来实现了!!
补充-Kotlin中的Pair和Triple类
最后,在Kotlin中,默认已经上述这两个类的实现
//Pair使用
val data = Pair("",1)
val fstValue = data.first
val secValue = data.second
//Triple使用
val data = Triple("",1,2)
val fstValue = data.first
val secValue = data.second
val thirdValue = data.third
Java编程小技巧(1)——方法传回两个对象的更多相关文章
- Java编程学习技巧和方法总结
干货:必须要有反馈,不断调整,多读书,多些笔记. 解释:不练习你以为你能掌握?笑话,只有自己根据一个个小目标不断的敲,运行,给予你反馈,这样才会真的进步. 纸上谈Java,是永远停止在口. 关于笔 ...
- java编程小技巧
1.缩进与反缩进 缩进:tab 反缩进:shift+tab 2.整段注释和取消整段注释 整段注释:ctrl+shift+/ 取消整段注释:ctrl+shift+\
- Java开发小技巧(三):Maven多工程依赖项目
前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...
- 斐波那契数列-java编程:三种方法实现斐波那契数列
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...
- JAVA基础语法:函数(方法)、类和对象(转载)
4.JAVA基础语法:函数(方法).类和对象 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块. 一个函数包括这几部分: 函数头 函数头包括函数访问修饰符,函数返回值类型, 函数名, ...
- Java性能小技巧
局部决定总体. 一个应用的总体性能取决于每一个组件的性能. 以下是一些帮助你提高应用性能的Java编程技巧: 编程技巧 原因及策略 避免反复创建对象 为什么: 更少的对象会须要更少的垃圾回收 使用的空 ...
- Shellcode编程小技巧
工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...
- 要想学好Java编程,构造器、方法重载、this关键字、垃圾回收机制,这4关一定要过!
有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写“无聊”的技术文了,因为程序员的圈子真的很小,即便是像鸿洋那样的招牌大牛,文章是那么的干货,浏览量有多少 ...
- 学会这些 pycharm 编程小技巧,编程效率提升 10 倍
PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...
随机推荐
- 学习GlusterFS(八)
GlusterFS集群创建 一.简介 GlusterFS概述 Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够 ...
- js技术之获取字符串中某个字符的位置(lastIndexOf()方法 和 indexOf() 方法)
一.lastIndexOf()方法 1.作用: 方法可返回 一个指定的字符串值 在字符串中最后出现的位置.从左往右查. 2.返回: 一个正整数.或者 -1. 3.语法: stringObject.la ...
- C语言函数中的3个点 ...有什么作用
标准库提供的一些参数的数目可以有变化的函数.例如我们很熟悉的printf,它需要有一个格式串,还应根据需要为它提供任意多个"其他参数".这种函数被称作"具有变长度参数表的 ...
- 顺利通过EMC实验(7)
- HTML5与HTML4区别简介
移动互联网的快速发展,尤其是4G时代已经来临,加上微软在Windows 10中搭载了新的浏览器Edge取代了IE的地位,所以现在很多网站都开始抛弃IE朝着HTML5发展,PC端在不同浏览器之间的兼容性 ...
- This program may be freely redistributed under the terms of the GNU GPL
在centos中安装Google浏览器时 执行[root@server1 opt]# rpm ivh install google-chrome-stable_current_x86_64.rpm 爆 ...
- Java List转为Object组
代码: private Object[] ListToObject(List<String> list){ Object [] tem = new Object[]{}; int size ...
- 小程序中webview内嵌h5页面
小程序内嵌h5页面跳转小程序指定页面, 需要引用 JSSDK: <script src="https://res.wx.qq.com/open/js/jweixin-1.3.2 ...
- css盒子模型、垂直外边距合并
css盒子模型由四部分组成:内容(content).填充(padding).边框(border).边距(margin),其中css样式中定义的width属性是定义内容区域的宽度,正常情况下,设置了内容 ...
- Python入门-系统模块time
1.time模块 时间戳:1970年,1月1日开始时间元祖:包含日期,时间,保存日期结构的元祖对象格式化时间日期:按照指定的标记进行格式化处理 时间戳 import time time_num = t ...