泛型
发表于|更新于|Java
|总字数:192|阅读时长:1分钟|浏览量:
和cpp模板元编程一样,Java也提供了泛型,
1 | 类名<T> |
高级用法:
1. 限制泛型可使用类型
1 | class 类名<T extends anyclass> |
其中,anyclass是指某个接口或者类
使用泛型限制后,泛型类型必须继承或者实现了anyclass这个接口或者类
2. 类型通配符
在泛型机制中,提供了类型通配符,其主要作用是在创建一个泛型类对象的时候
泛型中的通配符:
Constructor<T>是一个泛型类,代表某个类T的构造方法。
使用Constructor<?>表示你关心的是“某个类的构造方法”,但具体的类型参数你并不关心或不需要指定。目的:
文章作者: 梦始
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 梦始!
相关推荐
2025-01-26
IO流 (附带算法竞赛模板)
主要是BufferedReader + StringTokenizer(很快) 算法竞赛模板:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455import java.io.*; import java.math.BigDecimal; import java.math.BigInteger; import java.util.StringTokenizer; public class Main { public static void solve() { } public static void main(String[] args) throws Exception { try (PrintWriter out = new PrintWriter(new...
2025-03-05
Java14新特性-Record类
Java 中的 Record 类Record 类是 Java 14 引入的一种新特性,旨在简化不可变数据类的定义。它类似于枚举类,用于标记不可变的数据类。Record 类通过减少样板代码,使得类的定义更加简洁和紧凑12。 Record 类的定义 使用 record 关键字可以定义一个 Record 类。例如,定义一个包含 start 和 end 两个字段的 range 类,可以这样写: public record range(int start, int end) {} 这相当于定义了一个 final 类,并自动实现了 equals、hashCode 和 toString 方法2。 使用示例 以下是一个使用 Record 类的示例: 12345678public class Main { public static void main(String[] args) { range r = new range(100, 200); System.out.println(r.start()); // 输出: 100 ...
2025-02-27
JavaData类学习
Java的DATA类 Date类的概述 java.util,Date 表示日期和时间的类 类 Date 表示特定的瞬间,精确到千分之一秒(毫秒) 实例引入:获取时间原点到当前系统时间经历了多少秒 123456 // 时间原点:1970 年 01 月 01 日 00:00:00 public class DemoDate { public static void main(String[] args) { System.out.println(System.currentTimeMillis()); }} Date类常用的构造方法和成员方法成员方法getTime()方法。返回:时间原点以来,此Date对象表示的毫秒数 123456789import java.util.Date; public class DemoGetTime { public static void main(String[] args) {...
2025-01-26
Java包装类
Java 的包装类(Wrapper Classes)作用Java 的 包装类(Wrapper Class) 主要用于将 基本数据类型(primitive types) 转换为 对象类型(reference types),它们提供了额外的方法,并且在某些情况下是必需的,比如在 集合框架(如 ArrayList) 中存储数据。 1. Java 包装类有哪些?Java 为每种基本数据类型提供了对应的包装类: 基本类型(Primitive Type) 包装类(Wrapper Class) byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 2. 为什么需要包装类?(1) 在集合(ArrayList、HashMap 等)中存储基本类型Java 集合框架(如 ArrayList、HashMap)不支持基本类型,必须使用对象类型。例如,ArrayList<int>...
2025-10-08
Java并发 --volatile关键字
volatile概述 在Java并发中,volatile可以保证变量的可见性,如果我们将变量声明为volatile,就指示JVM,这个变量是共享且不稳定的,每次使用都需要从主存中读取 注意到volatile并不能保证原子性,所以对于多次写的情况下不适合用volatile,容易造成数据丢失问题,单独使用volatile一般可以用来操作一些开关,多次读一次写的对象,如: 12345678910111213public class Button { public volatile boolean isopen = true; public void run() { while (isopen == true) { // 逻辑操作 } } public void stop() { isopen = false; ...
2025-03-10
lombok
1.Lombok简介官方介绍Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. 大概的意思:Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。官网链接 简而言之:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。博客及源码GitHub链接 .Lombok使用使用Lombok需要的开发环境Java+Maven+IntelliJ...
评论
公告
Keep programming, keep progressing
