• JAVA 泛型的定义以及使用


    泛型类

    1. /**
    2. * 为该类定义泛型,可以是一个或多个
    3. * 定义的泛型可以在类中作为:
    4. * 类变量类型: T data
    5. * 类方法的入参以及返回类型 public void setData(T data),public T getData();次数以set,get方法举例,类的其他方法也是可以的
    6. * @param
    7. * E:表示 Element,即元素,运用在集合中
    8. * K:表示 Key,即键
    9. * V:表示 Value,即值
    10. * N:表示 Number,即数值类型
    11. * T:表示 Type,即 Java 类型
    12. * ? :表示不确定的 Java 类型
    13. */
    14. public class Generic {
    15. private String code;
    16. private String message;
    17. private T data;
    18. public String getCode() {
    19. return code;
    20. }
    21. public void setCode(String code) {
    22. this.code = code;
    23. }
    24. public String getMessage() {
    25. return message;
    26. }
    27. public void setMessage(String message) {
    28. this.message = message;
    29. }
    30. /**
    31. * 可以理解成泛型类的方法,但不能称之为泛型方法
    32. * 因为这里类定义了泛型 所以该类中的方法可以使用泛型T
    33. * @return
    34. */
    35. public T getData() {
    36. return data;
    37. }
    38. /**
    39. * 可以理解成泛型类的方法,但不能称之为泛型方法
    40. * @return
    41. */
    42. public void setData(T data) {
    43. this.data = data;
    44. }
    45. /**
    46. * 此方法可以定义泛型类中,也可以定义在普通类中,即泛型方法不一定定义在泛型类中
    47. * 即为为该方法定义了两个泛型U,R 定义的泛型可以作为方法的入参类型和返回类型,以及方法中的变量类型
    48. * 入参和返回类型可以是泛型或者具体的数据类型;例如testGeneric1,testGeneric2
    49. * @param u
    50. * @param r
    51. * @param
    52. * @param
    53. */
    54. public void testGeneric(U u,R r){
    55. // do something
    56. }
    57. /**
    58. * 返回类型为具体类型
    59. * @param u
    60. * @param r
    61. * @param
    62. * @param
    63. */
    64. public extends Number> String testGeneric1(U u,R r){
    65. // do something
    66. return r.toString();
    67. }
    68. /**
    69. * 返回类型为泛型
    70. * @param u
    71. * @param r
    72. * @param
    73. * @param
    74. */
    75. public extends Number> R testGeneric2(U u,R r){
    76. // do something
    77. return r;
    78. }
    79. }

    泛型接口

    1. import java.util.List;
    2. /**
    3. * 定义泛型I,R
    4. * 在该接口中可以使用泛型I,R作为接口方法的入参类型和返回值类型
    5. * @param
    6. * @param
    7. */
    8. public interface GenericService {
    9. List test1(I i);
    10. }

    泛型方法

    1. /**
    2. * 此方法可以定义泛型类中,也可以定义在普通类中,即泛型方法不一定定义在泛型类中
    3. * 即为为该方法定义了两个泛型U,R 定义的泛型可以作为方法的入参类型和返回类型,以及方法中的变量类型
    4. * 入参和返回类型可以是泛型或者具体的数据类型;例如testGeneric1,testGeneric2
    5. * @param u
    6. * @param r
    7. * @param
    8. * @param
    9. */
    10. public void testGeneric(U u,R r){
    11. // do something
    12. }

  • 相关阅读:
    nanomsg 广播 问题
    【ROS2原理2】必须要ROS2系统的四个要求
    Swin transformer v2和Swin transformer v1源码对比
    MATLAB程序设计与应用 4.4 特殊形式的函数
    SpringSecurity系列 - 09 SpringSecurity 自定义认证数据源实现用户认证
    asp.net班级管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
    ROS-TCP-Connector and ROS-TCP-Endpoint
    聊聊我在腾讯和字节工作感受
    Git使用教程:入门到精通
    【云原生 • Kubernetes】kubernetes 核心技术 - RC、Replica Set 和 Deployment
  • 原文地址:https://blog.csdn.net/chengmeng_123/article/details/133775648