• 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. }

  • 相关阅读:
    python 异常机制
    【Java】工具类的设计
    记录一次htonl和ntohl的使用方法和差别
    搜维尔科技:特斯拉称工厂内有两台人形机器人开始自主工作
    深度优先搜索理论基础及习题797.所有可能的路径
    李彦宏:程序员将不复存在! 周鸿祎回怼!网友:先把百度程序员都开除了!
    【C/C++】GCC vs. G++:C 与 C++ 编译器的差异和比较
    Kafka 如何保证消息顺序及其实现示例
    Double.doubleToLongBits()方法使用
    实验五 函数文件(matlab)
  • 原文地址:https://blog.csdn.net/chengmeng_123/article/details/133775648