Java泛型类、重构的使用及说明

 更新时间:2025年11月06日 09:33:49   作者:@纯牛奶  
文章介绍了泛型类和重构的概念、原理和应用,泛型类是一种参数化类型,可以操作不同数据类型,而重构是通过对已有代码进行修改,改善其设计、结构和可读性的过程,重构可以帮助提高代码质量、简化理解与调试、优化性能、改进设计、提高团队协作并扩展功能

一、泛型类

定义:类<>  表示泛型类   eg:

public class text <T>{
	T t;
public T getT() {
		return t;
	}
public void setT(T t) {
		this.t = t;
	}
}

text<>就是泛型类,泛型的本质是参数化类型,所操作的数据类型被指定为一个参数。可以看出这比较抽象。所以可以理解成模板,或者方程式,输入不同参数实现不同结果。

这有一个例子:对于输出String   int    double   自己定义一个输出方法 ,main函数调用输出方法。

在没有使用泛类之前,创建对象或者使用都需要定义好函数或者方法,且这都是固定死的模板,所以对于不同类型,要写不同输出方法。

而使用范类之后可以理解:这是一个万能模板,其中类型或者对象并没有写死。只要把类型定义成变量,在没有输出之前都是,直到调用输出才需要直到其类型。所以只需要一个者方法。

package 泛型类;
public class text <T>{//泛型
	T t;//可以理解未定型 ,使用时在赋类型
	
public T getT() {//get,set方法
		return t;
	}
	public void setT(T t) {
		this.t = t;
	}


public static void main(String[] args) {
	text cs=new text();
	String s="您好";
	cs.setT(s);//传递后T就是String类型
	System.out.println(cs.getT());
	
	int i=1;
	cs.setT(i);//传递后T就是int类型
	System.out.println(cs.getT());
	
	double d=3.14;
	cs.setT(d);//传递后T就是double类型
	System.out.println(cs.getT());
	
}
}

结果:

如果不用泛型结果输出类型就本应该是固定的如下:

package 非泛型类;
public class textcs {
	String s;
	
	public String getS() {
		return s;
	}
	public void setS(String s) {
		this.s = s;
	}
	
public static void main(String[] args) {
	textcs cs=new textcs();
	String s="您好";
	cs.setS(s);
	System.out.println(cs.getS());
}
}

 

package 非泛型类;
public class textcs2 {
	int i;
public int getI() {
		return i;
	}
	public void setI(int i) {
		this.i = i;
	}

public static void main(String[] args) {
	textcs2 cs=new textcs2();
	int i=1;
	cs.setI(i);
	System.out.println(cs.getI());
}
}

 

不难看出泛型如同模板,不是固定的,但是运行时必须明确指定具体的类型。

实战中泛型的使用:

如果不定义泛型类,应该创建学生集合 ArrayList<student>  list=new ArrayList<>(); //写死了。 如果在创建一个老师集合,就要到这个类来改把student改teacher比较麻烦。

定义泛型类后,要调用声明即可,可以是老师,可以是学生,可以是其他集合,更灵活更方便。

其实我们也常用泛型类 比如:ArrayList<Int>  整形集合 ArrayList<String>  字符型集合.....

二、重构

1.什么是重构:

  • 简单讲:重构就是对已有代码优化。
  • 定义:重构是指通过对软件系统中的代码进行修改改善其设计、结构和可读性的过程,而不改变其外部行为。重构目的在提高代码的质量,使其更易于理解、扩展和维护

2.为什么需要重构(重构带来好处):

  • 提高代码质量:重构可以去除冗余、复杂和低效的代码,使代码更具可读性、可维护性和可扩展性。
  • 简化理解与调试:通过重构,可以将复杂的代码分解成更小、更简洁的部分,从而更容易理解和调试。
  • 优化性能:重构可以帮助我们识别出潜在的性能问题,并进行优化,使代码运行更高效。
  • 改进设计:重构可以改进系统的整体设计,使其更灵活、可扩展和符合设计原则。
  • 提高团队协作:重构可以使代码更加清晰和可读,有利于团队成员之间的合作与沟通。
  • 扩展功能:通过重构,可以为系统添加新的功能和特性,而不会产生额外的复杂性和风险。

总结:重构可以提高代码质量简化理解与调试、优化性能、改进设计、提高团队协作并扩展功能,进而提高开发效率和软件质量

3.运用场景:

  • 代码维护、性能优化、架构改进、代码审查与重构、团队合作与知识分享,以及新功能开发等。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java如何实现多个线程之间共享数据

    Java如何实现多个线程之间共享数据

    这篇文章主要介绍了Java如何实现多个线程之间共享数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 一篇文章带你了解Java SpringMVC返回null

    一篇文章带你了解Java SpringMVC返回null

    这篇文章主要介绍了Spring MVC返回null,文中讲的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-10-10
  • MyBatis自定义映射resultMap的实现

    MyBatis自定义映射resultMap的实现

    本文主要介绍了MyBatis自定义映射resultMap的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 基于SpringBoot与Mybatis实现SpringMVC Web项目

    基于SpringBoot与Mybatis实现SpringMVC Web项目

    这篇文章主要介绍了基于SpringBoot与Mybatis实现SpringMVC Web项目的相关资料,需要的朋友可以参考下
    2017-04-04
  • Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁

    Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁

    这篇文章主要介绍了Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁,本文讲解了ReentrantLock概况、Lock接口、Lock使用、轮询锁的和定时锁、公平性、可中断获锁获取操作等内容,需要的朋友可以参考下
    2015-04-04
  • SpringMVC下实现Excel文件上传下载

    SpringMVC下实现Excel文件上传下载

    这篇文章主要为大家详细介绍了SpringMVC下实现Excel文件上传下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Kafka中使用Avro序列化和反序列化详解

    Kafka中使用Avro序列化和反序列化详解

    这篇文章主要介绍了Kafka中使用Avro序列化和反序列化详解,由于Kafka中的数据都是字节数组,在将消息发送到Kafka之前需要先将数据序列化为字节数组, 序列化器的作用就是用于序列化要发送的消息的,需要的朋友可以参考下
    2023-12-12
  • JSON 格式的弊端与解决方法(真实示例)

    JSON 格式的弊端与解决方法(真实示例)

    JSON 格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统。但也有一些场合不适合使用 JSON 格式,这篇文章主要介绍了JSON 格式的弊端与解决方法,需要的朋友可以参考下
    2022-09-09
  • mybatis sum(参数) 列名作为参数的问题

    mybatis sum(参数) 列名作为参数的问题

    这篇文章主要介绍了mybatis sum(参数) 列名作为参数的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 一文搞懂接口参数签名与验签(附含java python php版)

    一文搞懂接口参数签名与验签(附含java python php版)

    这篇文章主要为大家介绍了java python php不同版的接口参数签名与验签示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论