Java泛型简单的使用

java矩阵类 java矩阵运算的一些函数,包含求逆,转置等,需要的下载吧。。。 立即下载

Java泛型简单的使用

前言

Java里面的泛型在实际开发中运用的很多,学过C++的同学一定知道C++的模板,而Java中的泛型,一定程度上和它还是挺像的。

相信写Java的人,大都有用过List的实现类ArrayList。在Java没有泛型之前,它的内部是一个Object的数组实现的。这也导致一个问题,每次使用里面的元素的时候需要向下转型,而且很明显,如果是Object的话,意味着我们可以丢任何对象进去。自动转型成Object,这样在使用的时候就很容易出问题,不知道里面存的是什么。如:
ArrayList list = new ArrayList();
list.add(“string1”);
list.add(“string2”);
String str = (String) list.get(0);
list.add(new File(“test.txt”));

然而使用泛型容易,我们就经常使用List的泛型,但是如果我们要写一个泛型的类其实并不那么容易。

最简单的泛型
package io.ilss.advanced.generic;

/**

  • className MyObject

  • description MyObject

  • @author feng

  • @version 1.0

  • @date 2019-01-24 18:32
    */
    public class MyObject extends BaseData {
    private T valueOne;
    private T valueTwo;

    public MyObject(T valueOne, T valueTwo) {
    this.valueOne = valueOne;
    this.valueTwo = valueTwo;
    }

    public T getValueOne() {
    return valueOne;
    }

    public void setValueOne(T valueOne) {
    this.valueOne = valueOne;
    }

    public T getValueTwo() {
    return valueTwo;
    }

    public void setValueTwo(T valueTwo) {
    this.valueTwo = valueTwo;
    }

    public static void main(String[] args) {
    MyObject object = new MyObject<>(“String one!”, “String two”);
    System.out.println("value one " + object.valueOne + " value two " + object.valueTwo);
    }
    }

在MyObject中引入一个类型变量T,用尖括号<>括起来,放在类名的后面。如上!在定义的时候可以有多个类型的变量,在<>中以逗号,分隔例如public class MyObject<T, U>{…},在类中如果要使用类型 就直接把定义的类型变量看做类名使用即可。

用泛型做一个接口返回类

相信写Java的程序员都写过Web接口,那我们用泛型来封装一个统一响应返回的类ResponseMsg。

package io.ilss.advanced.generic;

/**

  • className ResponseMsg

  • description ResponseMsg

  • @author feng

  • @version 1.0

  • @date 2019-01-24 18:47
    */
    public class ResponseMsg {
    public static int SUCCESS_CODE = 1;
    public static int ERROR_CODE = 0;
    public static int OTHER_CODE = -1;
    private int code;
    private String msg;
    private T data;

    public static ResponseMsg sendSuccess(U data) {
    ResponseMsg responseMsg = new ResponseMsg<>();
    responseMsg.code = SUCCESS_CODE;
    responseMsg.data = data;
    responseMsg.msg = “Remote Call Success!”;
    return responseMsg;
    }

    public static ResponseMsg sendError(U data, String msg) {
    ResponseMsg responseMsg = new ResponseMsg<>();
    responseMsg.code = ERROR_CODE;
    responseMsg.data = data;
    responseMsg.msg = “Remote Call Error”;
    return responseMsg;
    }
    public static ResponseMsg sendOther(U data, String msg) {
    ResponseMsg responseMsg = new ResponseMsg<>();
    responseMsg.code = OTHER_CODE;
    responseMsg.data = data;
    responseMsg.msg = msg;
    return responseMsg;
    }

    public static void main(String[] args) {
    System.out.println(ResponseMsg.sendSuccess(new MyObject(“asdf”,“asfd”)));
    }

    @Override
    public String toString() {
    return “ResponseMsg{” +
    “code=” + code +
    “, msg=’” + msg + ‘’’ +
    “, data=” + data +
    ‘}’;
    }
    }

上面的重点是上的我利用静态方法封装了ResponseMsg的构建,只需要提供静态方法让调用的人传入一个类,也可以不用写Getter Setter方法,或者直接变成私有方法。
方法如果要用泛型,则只需要在定时的时候在返回类型前面加上即可使用。调用的时候直接在调用方法前面用<>传入你想用的类即可。如上所示,也可以将方法用的泛型直接传入自己类定义的泛型。
此外还可以通过extends限定你是某某类的子类,或者实现了某个接口。如果有多个接口可以用&连接,比如<T extends Comparable & Serializable>,如果有多个泛型可以是这样<T extends OneObject, U extends TwoObject>

注意

泛型不能直接new,需要外部传入。
如:
T data = new T(); //这是不被允许的,不能实例化对象
T[] arr = new T[10]; //这也是不被允许的 不能构造泛型数组

java泛型数组 泛型数组的创建 立即下载

相关推荐

Java泛型应用实例

网上很多讲泛型原理的文章, 很少有提到我们什么时候使用泛型有优势, 我就泛型类和方法搞了两个实例,算是探索下泛型使用的冰山一角吧,在我博客里面有配套的文章,可以配套看.

java矩阵相乘泛型_21.8 实例学习:泛型矩阵类

21.8 实例学习:泛型矩阵类本节给出了一个实例,使用泛型类型设计对矩阵进行操作的类。对于所有矩阵,除了元素类型不同以外,它们的加法和乘法操作都是类似的。因此,可以设计一个父类,不管它们的元素类型是什么,该父类描述所有类型的矩阵共享的通用操作,还可以创建若干个适用于指定矩阵类型的子类。这里的实例给出了两种类型—int和Rational的实现。对于int类型而言,包装类Integer应该用于将一...

weixin_39662432的博客 507

基于java中泛型的总结分析

本篇文章介绍了,在java中泛型的总结分析。需要的朋友参考下

java矩阵相乘泛型_Swift泛型:需要某种类型的加法和乘法能力

我正在尝试Swift书中的一些示例,即它们具有的矩阵示例,其中引入了下标选项。这是我的代码:struct Matrix {let rows: Int, columns: Intvar grid: T[]var description: String {return "\(grid)"}init(rows: Int, columns: Int, initialValue: T) {self.rows...

weixin_34246529的博客 182

# 解决 win11 连接共享打印机,报错 0x00000709 问题

# 解决 win11 连接共享打印机,报错 0x00000709 问题

段子手168的博客 9万+

如何使用 Ansys OptiSlang 同时运行多个参数化设计研究

了解如何通过使用 OptiSLang 同时运行多个参数化设计研究来提高工作效率。

jkh920184196的博客 2383

Java中泛型通配符的使用

一点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数。 语法如下: 泛型类名<? extends T>或泛型类名<? super T>或泛型类名<?> ? extends T:表示T或T的子类 ? super T:表示T或T的父类 ?:表示可以是任意类型 二通配符在泛型类创建泛型对象中使用 1代码 ...

实践求真知 3440

AI虚拟人物 数字人直播,不用出镜,不用露脸的直播方式(附教程 软件)

我们先来看一组数据,这是我通过蝉妈妈查到的某位虚拟主播的一个带货数据,粉丝还不到 3000 人,每次直播 1 到 4 个小时,30天的总销量达到了1200单,15天,总销售额 2 万,可能相对来说客单价还是比较低,最关键的是才直播了 6 场,如果说他能够一个月直播 20 天,每天花 4个小时去直播,当个副业来做,就可以达到最起码月入 3 万的一个收入水平,我个人觉得是非常的不错的。大家把商品图片放在背景,只要场景设置的不错,场景和产品的关联度高,直播的时候挂上购买链接也会有一定的成交。

. 7万+

泛型在Java中的应用

在进行代码编写时,就对对象类型检查,可以减少运行时出现问题的概率。

QQ156881887的专栏 690

全志T133-s3(Tina Linux)下RTL8723DS WiFi驱动移植与调试实战

本文详细介绍了在全志T133-s3平台(Tina Linux)上移植RTL8723DS WiFi驱动的完整流程,包括硬件连接、驱动源码获取、内核配置、系统适配、设备树配置以及常见问题排查。通过实战案例,帮助开发者快速解决SDIO接口通信、固件加载、电源管理等关键问题,实现稳定的WiFi功能。

weixin_30505225的博客 507

OC5021B 100V宽电压输入 LED车灯/大功率照明 DC降压型恒流驱动器

适用于LED大功率汽车大灯/大功率照明 OC5021B 100V宽电压输入 5A电流设计 DC-DC降压型恒流驱动IC

Handsome63841990的博客 2417

Java 基础(1)—泛型简单使用

从上述代码可以看出,在获取值时每次都需要强转,稍不留神就容易发生强转错误。所以能不能通过一种方式避免类型强转呢?答案是:泛型。将泛型定义在类上,就可以避免类型转换。return obj;} }} }发现没,每次调用 show() 方法,都需要在通过创建实例,因为在创建时可以指定具体使用的参数类型。} }最后在方法调用时传入具体参数类型,这样就可以避免重复创建对象,做到一个方法重复调用,和 Object 非常类似。包括。

龚小帅的博客 1745

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1420

Java 泛型设计(泛型简单定义、类型擦除)与泛型使用的局限性

从Java 5引入。泛型程序设计意味着编写的代码可以对多种不同类型的对象重用。 在Java中增加泛型类之前,泛型程序设计是用继承实现的。ArrayList类只维护一个 Object 引用的数组。 定义简单泛型类 public class Pair<T> { private T first; private T second; ... ... } 泛型方法 class ArrayArg { public static <T> T getM.

一只青年痴呆 1272

apollo自动驾驶进阶学习之:如何实现施工路段限速绕行及其参数调试

首先需要理解Planning模块是基于Scenario、Stage、Task这样的层次来进行的,即场景->步骤->具体的决策方法。Apollo可以应对自动驾驶所面临的不同道路场景,都是通过Scenario统一注册与管理。Scenario通过一个有限状态机来判断选择当前行车场景,每个Scenario下又有多个Stage,指当前场景下需要执行的粗略步骤。.........

qq_41593516的博客 6598

【脑电信号】脑电信号EEG形态学滤波处理【含Matlab源码 4023期】

脑电信号EEG形态学滤波处理 完整的代码,包运行;运行操作视频见优快云资源!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 823

【Java】泛型的简单使用

就是适用于许多许多类型。就是指定当前的容器,要持有什么类型的对象,让编译器去做检查class 泛型类名称 {// 这里可以使用类型参数class 泛型类名称 extends 继承类/* 这里可以使用类型参数 */ {// 这里可以使用类型参数// 可以只使用部分类型参数//1//2//31.类名后的< T >代表占位符,表示当前类是一个泛型类【规范】类型形参一般使用一个大写字母表示,常用的名称有:E 表示 Element。

2301_78373304的博客 1152

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java当中泛型的简单使用

1.在集合中使用泛型 集合接口或集合类在jdk 5.0中都修改为带泛型的结构 在实例化集合类时,可以指明具体的泛型类型 指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如方法、构造器、属性)使用到类的泛型位置,都指定为实例化时泛型类型。比如:add(E e)---->实例化以后:add(Integer e) 注意点:泛型的类型必须是类,不能是基本数据类型,需要用到基本数据类型的位置,拿包装类替换 如果实例化时没有指明泛型的类型,默认为Object类型 public class Gene

weixin_44179811的博客 257

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java泛型—泛型简单的使用

前言 Java里面的泛型在实际开发中运用的很多,学过C++的同学一定知道C++的模板,而Java中的泛型,一定程度上和它还是挺像的。 相信写Java的人,大都有用过List的实现类ArrayList。在Java没有泛型之前,它的内部是一个Object的数组实现的。这也导致一个问题,每次使用里面的元素的时候需要向下转型,而且很明显,如果是Object的话,意味着我们可以丢任何对象进去。自动转...

苡仁 324

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

新手向,最简单直白说明Java泛型简单的使用!!!

这也导致一个问题,每次使用里面的元素的时候需要向下转型,而且很明显,如果是Object的话,意味着我们可以丢任何对象进去。如上所示,也可以将方法用的泛型直接传入自己类定义的泛型。上面的重点是上的<U>我利用静态方法封装了ResponseMsg的构建,只需要提供静态方法让调用的人传入一个类,也可以不用写Getter Setter方法,或者直接变成私有方法。Java里面的泛型在实际开发中运用的很多,学过C++的同学一定知道C++的模板,而Java中的泛型,一定程度上和它还是挺像的。用泛型做一个接口返回类。

2403_88996764的博客 317

java获取泛型的类名_Java泛型简单的使用

Java里面的泛型在实际开发中运用的很多,学过C++的同学一定知道C++的模板,而Java中的泛型,一定程度上和它还是挺像的。相信写Java的人,大都有用过List的实现类ArrayList。在Java没有泛型之前,它的内部是一个Object的数组实现的。这也导致一个问题,每次使用里面的元素的时候需要向下转型,而且很明显,如果是Object的话,意味着我们可以丢任何对象进去。自动转型成O...

weixin_32430941的博客 2023
下一篇: 看似很简单的几个Java概念,你真的搞清了吗?
java_jiagoushi
博客等级 码龄8年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值