首页 > 编程语言 >无涯教程-Java泛型 - 命名约定

无涯教程-Java泛型 - 命名约定

时间:2023-12-27 17:32:05浏览次数:49  
标签:Java java list 无涯 Value 类型 泛型 Integer public

按照惯例,类型参数名称被命名为单个大写字母,以便可以使用普通的类或接口名称区分类型参数。以下是常用类型参数名称的列表-

  • E 元素    - 主要由Java Collections框架使用。

  • K 键        - 主要用于表示Map键的参数类型。

  • V 值        - 主要用于表示Map的值的参数类型。

  • N 数字   - 主要用于表示数字。

  • T 类型    - 主要用于表示第一个通用类型参数。

  • S 类型    - 主要用于表示第二个泛型类型参数。

  • U 类型   - 主要用于表示第三个通用类型参数。

  • V 类型   - 主要用于表示第四个泛型类型参数。

以下示例将展示上述概念。

使用您选择的任何编辑器创建以下Java程序。

package com.learnfk;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GenericsTester {
   public static void main(String[] args) {
      Box<Integer, String> box = new Box<Integer, String>();
      box.add(Integer.valueOf(10),"Hello World");
      System.out.printf("Integer Value :%d\n", box.getFirst());
      System.out.printf("String Value :%s\n", box.getSecond());

      Pair<String, Integer> pair = new Pair<String, Integer>(); 
      pair.addKeyValue("1", Integer.valueOf(10));
      System.out.printf("(Pair)Integer Value :%d\n", pair.getValue("1"));

      CustomList<Box> list = new CustomList<Box>();
      list.addItem(box);
      System.out.printf("(CustomList)Integer Value :%d\n", list.getItem(0).getFirst());
   }
}

class Box<T, S> {
   private T t;
   private S s;

   public void add(T t, S s) {
      this.t = t;
      this.s = s;
   }

   public T getFirst() {
      return t;
   } 

   public S getSecond() {
      return s;
   } 
}

class Pair<K,V>{
   private Map<K,V> map = new HashMap<K,V>();

   public void addKeyValue(K key, V value) {
      map.put(key, value);
   }

   public V getValue(K key) {
      return map.get(key);
   }
}

class CustomList<E>{
   private List<E> list = new ArrayList<E>();

   public void addItem(E value) {
      list.add(value);
   }

   public E getItem(int index) {
      return list.get(index);
   }
}

这将产生以下输出。

Integer Value :10
String Value :Hello World
(Pair)Integer Value :10
(CustomList)Integer Value :10

参考链接

https://www.learnfk.com/java-generics/java-generics-type-parameters.html

标签:Java,java,list,无涯,Value,类型,泛型,Integer,public
From: https://blog.51cto.com/u_14033984/9002511

相关文章

  • java流程控制
    一.用户交互Scanner对象可以用Scanner类来获取用户的输入Scanner对象的基本语法Sacnnerscanner=newScanner(System.in)Scanner类的常用方法hasNext();判断用户是否有输入next();读取到有效字符后......
  • java数组
    一.数组的概述1.数组的定义: 1.数组是相同类型数据的有序集合.2.数组是描述相同类型的若干个数据,按照一定的先后顺序排列而成.3.其中.每一个数组数据称为一个数组元素,每一个数组元素可以通过下标来进行访问.2.数组的四个基本......
  • Javascript 原型链 jQuery原型链 js原型链 我感觉我能一直写下去 扶着我>_<
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>原型链闭环</title><scriptsrc="./jquery.js"></script></head><body><divclass=&quo......
  • Java线程池ThreadPoolExecutor源码解析
    Java线程池ThreadPoolExecutor源码解析1.ThreadPoolExecutor的构造实现以jdk8为准,常说线程池有七大参数,通常而言,有四个参数是比较重要的publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,lon......
  • 使用java8 将pdf转为tif文件并设定图片格式
    在工作中,遇到一个需要将pdf转为tif并将图片大小限制到30kb以内的需求。在网上看了一圈,也因为依赖版本等等踩了一些坑,为此记录下来学习的过程。`importcom.github.jaiimageio.impl.plugins.tiff.TIFFImageWriterSpi;importcom.github.jaiimageio.plugins.tiff.BaselineTIFFTagS......
  • Java反射
    一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解......
  • java.net.MalformedURLException: no protocol异常处理
    摘要:本篇博客讨论了Java应用程序中可能遇到的java.net.MalformedURLException:noprotocol异常,并提供了解决方案。我们首先介绍了该异常的错误信息和可能的原因,然后提供了两种解决方案,一种是确保URL包含正确的通信协议,另一种是通过URL编码和解码来处理特殊字符和编码问题。我们......
  • Java 工厂方法设计模式
    需求:Pizza有以下几个方法prepare()准备食材bake()烘焙cut()切割box()装盒现在有2种披萨且和2地区有关,成都地区第一种是CDApplePizza,第二种是CDCheesePizza。北京地区的BJApplePizza和BJApplePizza。PizzaStore有点单系统Order(city,pizzaType)根据pizzatype去制作对......
  • java浅拷贝BeanUtils.copyProperties引发的RPC异常 | 京东物流技术团队
    背景近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到人在地铁上,bug从咚咚来~没有任何修改的服务接口,抛出异常:java.lang.ClassCastException:java.util.HashMapcannotbecasttocn.xxx.xxx.xxx.xxx.Ba......
  • java浅拷贝BeanUtils.copyProperties引发的RPC异常 | 京东物流技术团队
    背景近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到人在地铁上,bug从咚咚来~没有任何修改的服务接口,抛出异常:java.lang.ClassCastException:java.util.HashMapcannotbecasttocn.xxx.xxx.xxx.xx......