返回顶部
首页 > 资讯 > 后端开发 > Python >java方法泛型入参T和String的重载关系详解
  • 705
分享到

java方法泛型入参T和String的重载关系详解

2024-04-02 19:04:59 705人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录方法泛型入参T和String的重载关系重载的基本知识不在这里讨论了重载遇到泛型的问题反复求证,得出以下结论方法泛型入参T和String的重载关系 重载的基本知识不在这里讨论了 重

方法泛型入参T和String的重载关系

重载的基本知识不在这里讨论了

重载的一个关键理论,如果方法名相同,参数个数、父类型、位置也相同,则调用更加特殊化一个方法。

多余的没写,大家可以运行一下下面的代码,然后理解一下就ok了。

public class TestMain { 
    public static void main(String[] args) {
        TestMain t = new TestMain();
        t.func("message");
        t.func(new String("message"));
        t.func(new Object());
    }
 
    protected <T> void func(T data) {
        System.out.println("fun1" + data);
    }
 
    protected void func(String data) {
        System.out.println("fun2" + data);
    } 
}

由于string和T相比较,带有String data入参的方法更加特殊化,所以当传入String参数的时候,会调用第2个func。

网上还有关于null入参的讨论,我理解是由于null入参两个方法都可以,所以会选择更加特殊化的方法,也就是第二个func。

这里可以试一下,定义一个Object入参的方法,编译器会直接说与T data入参的方法歧义。

(T是一个泛型,没有具体说明类型,这里类似于Object类型)

重载遇到泛型的问题

今天被问到一个有意思的问题,大家都知道重载的概念吧:一个类中定义同名的方法,参数表不同(参数类型,或者参数个数不通);

但是,如果是下面这个两个方法呢

public static int fn(List<Integer> index) { 
   return 1; 
} 
public static String  fn(List<String> str) {    
   return "str"; 
} 

同名的两个方法,参数表中用到了集合,参数表里的泛型不一样,那么到底这样能不能编译通过呢?

反复求证,得出以下结论

使用Sun jdk的Javac来进行编译会通过,而其他编译器可能会拒绝编译这段代码

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: java方法泛型入参T和String的重载关系详解

本文链接: https://lsjlt.com/news/139192.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java方法泛型入参T和String的重载关系详解
    目录方法泛型入参T和String的重载关系重载的基本知识不在这里讨论了重载遇到泛型的问题反复求证,得出以下结论方法泛型入参T和String的重载关系 重载的基本知识不在这里讨论了 重...
    99+
    2024-04-02
  • Java 中泛型 T 和 ? 的区别详解
    目录泛型中 T 类型变量 和 通配符 区别Generic Types 类型变量用法2.声明通用的方法 – 泛型方法:有界类型参数Wildcards 通配符1.上界通配符...
    99+
    2024-04-02
  • Java 泛型详解(超详细的java泛型方法解析)
    目录2. 什么是泛型3. 使用泛型的好处4. 泛型的使用4.1 泛型类4.2 泛型方法4.3 泛型接口5. 泛型通配符5.1 通配符基本使用5.2 通配符高级使用6. 总结1. 为什...
    99+
    2024-04-02
  • Java 方法的重载与参数传递详解
    目录方法重载概述方法重载特特点方法重载练习方法参数传递方法参数传递(基本类型)方法参数传递(引用类型)方法重载概述 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方...
    99+
    2024-04-02
  • 详解java 中泛型中的类型擦除和桥方法
    在Java中,泛型的引入是为了在编译时提供强类型检查和支持泛型编程。为了实现泛型,Java编译器应用类型擦除实现:       1、  用类型参数(type parame...
    99+
    2023-05-31
    java 泛型 桥方法
  • Java构造方法和方法重载详解
    目录第一 构造方法的作用第二 构造方法的特点方法重载总结类的结构包括 : 1. 成员变量 2. 成员方法 3. 构造方法 4. 代码块 5. 内部类 第一 构造方法的作用 主要有以下...
    99+
    2024-04-02
  • java方法重载和参数类型自动提升方式
    目录方法重载和参数类型自动提升方法重载的意思是对于基本类型数据而言java基本类型重载1.重载2.基本类型重载3.代码示例4.重载解析过程5.可行集获取的原则方法重载和参数类型自动提...
    99+
    2024-04-02
  • java基础之方法和方法的重载详解
    目录一、带参方法1.1 带参方法的定义和调用1.2 带参方法使用注意事项1.3 带参方法的应用1.4 基本数据类型和引用数据类型传参时的区别1.5 方法传参-对象数组二、构造方法2....
    99+
    2024-04-02
  • 详解Java中方法重写和方法重载的6个区别
    目录1.方法重写1.1 基本用法1.2 使用场景1.3 注意事项2.方法重载2.1 基本使用2.2 使用场景2.3 注意事项3.方法重写 VS 方法重载总结方法重写(Override...
    99+
    2024-04-02
  • 详解Java泛型中类型擦除问题的解决方法
    以前就了解过Java泛型的实现是不完整的,最近在做一些代码重构的时候遇到一些Java泛型类型擦除的问题,简单的来说,Java泛型中所指定的类型在编译时会将其去除,因此List&nbs...
    99+
    2024-04-02
  • 深入了解Java方法的重载与重写
    目录1.方法的重载1.1.基本介绍1.2.重载的好处1.3.重载使用细节1.4.可变参数2.方法的重写2.1.基本介绍2.2.重写的好处2.3.重写的细节3.重写与重写的对比1.方法...
    99+
    2024-04-02
  • 【Java 基础】类和对象 & 方法重载详解
    《Java 零基础入门到精通》专栏持续更新中。通过本专栏你将学习到 Java 从入门到进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 ...
    99+
    2023-10-10
    java 开发语言 后端
  • 【Java 基础】类和对象 & 方法重载详解
    《Java 零基础入门到精通》专栏持续更新中。通过本专栏你将学习到 Java 从入门到进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,...
    99+
    2023-08-21
    java 开发语言 后端
  • 关于Java如何正确地实现方法重载详解
    目录一. 方法重载1. 概念2. 要求二. 代码案例1. 普通方法重载2. 构造方法重载三. 结语一. 方法重载 1. 概念 所谓方法的重(chong)载(重复出现),就是指在一个类...
    99+
    2023-05-19
    Java实现方法重载 Java方法重载
  • 详解Java使用super和this来重载构造方法
    详解Java使用super和this来重载构造方法实例代码://父类 class anotherPerson{ String name = ""; String age = ""; public String getAge() ...
    99+
    2023-05-31
    java this super
  • 关于JAVA中方法的重写详细讲解又与重载有何区别
    1、什么是方法重写(overriding)? (1) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方...
    99+
    2018-09-29
    java教程 重写
  • Java基础入门篇之如何理解方法和重载
    本篇内容介绍了“Java基础入门篇之如何理解方法和重载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、什么是方法简单来说方法就是一段可以被...
    99+
    2023-06-15
  • 详解Java中的println输入和toString方法的重写问题
    目录println()直接打印toString的使用其他的一些情况println()直接打印 我们都知道println()如果打印的是基本数据类型的话直接打印出来的就是值,你如果是引...
    99+
    2024-04-02
  • Java文件重定向和加载的原理和实现方法详解。
    Java文件重定向和加载的原理和实现方法详解 Java文件重定向和加载是Java开发中常用的技术,它们可以帮助我们更好地管理程序的输入输出和加载类文件。本文将详细介绍Java文件重定向和加载的原理和实现方法,并给出相应的演示代码。 一、Ja...
    99+
    2023-09-05
    文件 重定向 load
  • 详解Java方法method的定义与调用及重载
    目录方法的定义和调用什么是方法方法的声明格式方法的调用方式方法的详细说明总结方法的重载什么是方法重载构成方法重载的条件总结方法的定义和调用 什么是方法 方法(method)就是一段用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作