从头认识java-13.2 利用元组的方式返回多类型对象

这一章节我们来讨论一下利用元组的方式返回多类型对象。

1.定义元组

@SuppressWarnings("hiding")
class Tuple<A, B> {
	public final A a;
	public final B b;

	public Tuple(A a, B b) {
		this.a = a;
		this.b = b;
	}

}

这里可能有人会问到安全的问题,我们做出一些解释:

大家注意我们的属性域都是使用了final,这样迫使创建新的对象,而不是对原对象进行修改。

2.利用元组的方式返回多个对象

package com.ray.ch13;

public class Test {

	public static Tuple<A, B> getTuple() {
		Tuple<A, B> tuple = new Tuple<A, B>(new A(), new B());
		return tuple;
	}

	public static void main(String[] args) {
		Tuple<A, B> tuple = getTuple();
		System.out.println(tuple.a);
		System.out.println(tuple.b);
	}
}

class A {
}

class B {
}

@SuppressWarnings("hiding")
class Tuple<A, B> {
	public final A a;
	public final B b;

	public Tuple(A a, B b) {
		this.a = a;
		this.b = b;
	}

}

上面通过组合成一个元组来达到返回不同类型对象的目的。

3.多类型元组

上面只是定义了两种类型的元组,其实我们可以根据实际需求,返回多类型的元组。这里不做展开。

总结:这一章节主要讲述了元组,以及利用元组的方式返回多类型对象。

这一章节就到这里,谢谢。

-----------------------------------

目录

时间: 2024-10-18 11:32:59

从头认识java-13.2 利用元组的方式返回多类型对象的相关文章

[Java]#从头学Java# Java大整数相加

重操旧业,再温Java,写了个大整数相乘先回顾回顾基本知识.算法.效率什么的都没怎么考虑,就纯粹实现功能而已. 先上代码: 1 package com.tacyeh.common; 2 3 public class MyMath { 4 5 public static String BigNumSum(String... n) { 6 int length = n.length; 7 StringBuilder result = new StringBuilder(); 8 //这里判断其实不需

JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误

问题一:出现控制台坏的响应错误一Bad request 控制台出现错误如下: Bad Request request: http://hostIP:8983/solr/update?wt=javabin&version=1 解决方法: 出现以上错误的原因是,solr服务器上配置的Field和javabean提交的Field不能对应, 导致solr服务器找不到域,拒绝访问. 打开SOLR_HOME下的conf文件夹找到schema.xml文件,在其中添加对应的域. 例如以下代码添加了:title,

Java读取文件 利用MappedByteBuffer进行缓冲

Java读取文件 利用MappedByteBuffer进行缓冲,这样可以保证边读取大文件,边进行处理 package sean; import java.io.ByteArrayInputStream; import java.io.File; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.Scann

java利用反射将pojo转为json对象

最近做以太坊钱包项目需要与前台进行json交互,写一个工具类,经普通javaBean转为json对象 1 package util; 2 3 import java.lang.reflect.Field; 4 import java.lang.reflect.Method; 5 import java.util.List; 6 7 import org.web3j.protocol.core.methods.response.Transaction; 8 9 import com.alibaba

2019年9月17 发布 Java 13

2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布. 目前,JDK官网上已经可以看到JDK 13的进展,最新版的JDK 13将于2019年9月17日发布. 目前,JDK13处于Release-Candidate Phase(发布候选阶段),将于9月17日正式发布.目前该版本包含的特性已经全部固定,主要包含以下五个: JEP 350,Dynamic CDS Archives JEP 351,ZGC: Uncommit

Java 9 ← 2017,2019 Java → 13 ,都发生了什么?

距离 2019 年结束,只剩下 35 天了.你做好准备迎接 2020 年了吗? 一到年底,人就特别容易陷入回忆和比较之中,比如说这几天, 的对比挑战就火了! 这个话题登上了微博的热搜榜,也刷爆了朋友圈,人们纷纷晒出自己2017和2019的照片对比. 作为一个技术宅,我也做了一个对比: 2017 年 9 月 21 日,Java 9 正式发布,并且在2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布. 历任JDK对比 J

深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析

Java虚拟机深入理解系列全部文章更新中... 深入理解Java虚拟机-Java内存区域透彻分析 深入理解Java虚拟机-常用vm参数分析 深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别JVM内存分配文盲 深入理解Java虚拟机-如何利用JDK自带的命令行工具监控上百万的高并发的虚拟机性能 深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析 深入理解Java虚拟机-你了解GC算法原理吗 前面在学习JVM的知识的时候,一般都需要利用相关参数进行分析,而分析一般

java开发webservice的几种方式(转载)

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟.这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便. (1)下载eclipse的Java EE版本 http://www.eclipse.org/downloa

[疯狂Java]I/O:I/O流的最高境界——对象流(序列化:手动序列化、自动序列化、引用序列化、版本)

1. 什么是对象流:序列化/反序列化的概念 1) 对象流是和字节流/字符流同处于一个概念体系的: a. 这么说字节流是流动的字节序列,字符流是流动的字符序列,那么对象流就是流动的对象序列咯? b. 概念上确实可以这样理解,对象流就是专门用来传输Java对象的: c. 但是字节和字符都是非常直观的二进制码(字节本身就是,而字符是一种二进制编码),二进制码的流动是符合计算机的概念模型的,可是对象是一个抽象的东西,对象怎么能像二进制码那样流动呢? d. 其实很好理解,对象流只不过是Java的API而已