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.右击标签页: ...
随机推荐
- 学习Nginx(二)
Nginx支持四层代理 http://nginx.org/en/docs/stream/ngx_stream_core_module.html 该ngx_stream_core_module模块自1. ...
- 学习Docker(一)
一.docker介绍 docker是半虚拟化,比完全虚拟化性能高,可以使用物理机性能100% Docker 镜像(Images): 用于创建 Docker 容器的模板 Docker 容器(Contai ...
- Python - 文档格式转换(CSV与JSON)
- 面试官:什么是MySQL 事务与 MVCC 原理?
作者:小林coding 图解计算机基础网站:https://xiaolincoding.com/ 大家好,我是小林. 之前写过一篇 MySQL 的 MVCC 的工作原理,最近有读者在网站上学习的时候, ...
- 高速PCB设计名词解析
1.吸芯效应 "芯吸效应"是超细纤维特有的性能,是指超细纤维中孔细,接近真空时,近水端纤维管口与水分子接触形成纤维中真空孔隙,此时大气压值超过纤维内部的真空,水就自然压积进入纤维孔 ...
- css预编译--sass进阶篇
基础篇中主要介绍了一些sass的基本特性,进阶篇中,主要是写一些我们常用的sass控制命令,函数和规则. 控制命令 可能看过基础篇的朋友会发现在有些代码中出现@if @else @each等,熟悉JS ...
- css文字颜色渐变的3种实现
在web前端开发过程中,UI设计师经常会设计一些带渐变文字的设计图,在以前我们只能用png的图片来代替文字,今天可以实现使用纯CSS实现渐变文字了.下面就介绍3中实现方式供大家参考! 基础样式: .g ...
- Java中数组的定义与使用(代码+例子)
学习目标: 掌握一维数组的使用 学习内容: 1.一维数组的定义 数组(Array),是把具有 相同类型 的多个常量值 有序组织 起来的一种数据形式.这些按一定顺序排列的多个数据称为数组.而数组中的每一 ...
- python---复杂度、斐波那切数列、汉诺塔
时间复杂度 用来估计算法运行时间的一个式子. 一般来说, 时间复杂度高的算法比复杂度低的算法慢. 常见的时间复杂度: O(1) < O(logn) < O(n) < O( ...
- Mybatis注解开发(一对一)
其他代码访问:Mybatis注解开发基础操作 1.添加OrderMapper接口 public interface OrderMapper { // @Select("select *,o. ...