`

java 中重载函数调用时出现的问题

阅读更多

java 中重载函数很常见,比如JDK 中的的FileInputStream构造方法就有重载:

FileInputStream(File file) 

FileInputStream(String name)

但是有时候会出现如下问题:



 报错信息为:The method write2File(boolean, File) is ambiguous for the type TestOverride

 

出现该问题的场景是:重载的两个函数中有实参为null,java编译器没法确定此处的null是指File还是String,所以就报编译错误了。

如何解决呢?明确地执行此处null的类型,代码如下:

package com.test;
import java.io.File;

public class TestOverride {
	public static void write2File(boolean isWrite2File, File file) {
	}

	public static void write2File(boolean isWrite2File, String filepath) {
	}

	public static void main(String[] args) {
		File file=null;
		write2File(false, file);
	}
}

 

 

 

  • 大小: 41.9 KB
1
7
分享到:
评论

相关推荐

    java中函数重载与覆盖例子

    在Java编程语言中,函数重载(Overloading)和覆盖(Overriding)是面向对象特性的重要组成部分,它们分别处理多态性中的静态多态和动态多态。本篇将通过一个具体的例子,深入探讨这两个概念。 函数重载是指在同一...

    Java中重载和重写总结

    无法以返回值类型作为重载函数的区分标准。 3. 方法重载的例子 下面是一个简单的方法重载的例子: ```java package c04.answer; public class Dog { Dog() { this.bark(); } void bark() { System.out....

    java函数速查手册常用函数

    Java函数速查手册是编程学习过程中非常实用的参考资料,它主要涵盖了Java语言中常见的函数,对初学者来说尤其有价值。这个CHM文件很可能是由一系列的函数解释、示例代码和使用指南组成的电子手册,方便用户快速查找...

    java函数速查

    递归是指函数在其定义中调用自身,而函数重载允许在同一类中定义多个同名但参数列表不同的函数。函数重写则是在子类中覆盖父类的同名函数,实现不同的功能或优化性能。 总之,Java函数速查资源是开发者不可或缺的...

    01-Java基础-函数(启发式定义

    6. **内存空间分配**:深入到内存模型,解释了栈内存(存储局部变量和函数调用信息)和堆内存(存储对象实例)的区别,以及函数调用时内存的动态分配。 7. **递归函数**:可能提到了函数如何调用自身,以及在解决...

    JAVA函数使用手册

    在Java编程语言中,函数是实现特定功能的代码块,可以被多次调用,从而提高代码的重用性。这份“JAVA函数使用手册”可能是针对Java编程中的函数使用方法、设计原则以及常见问题的详细指南。以下是关于Java函数的一些...

    编写实现函数重载程序

    在Java(或其他支持函数重载的语言)中,我们可以通过以下方式实现函数重载: 1. **改变参数数量**:例如,一个函数接受两个参数,另一个则接受三个参数。 2. **改变参数类型**:例如,一个函数接受整数,另一个则...

    java函数讲解

    1. **函数调用**:在主程序中,使用函数名并传递相应的实际参数来调用函数。 2. **参数传递**:实际参数的值被传递给函数的形式参数。 3. **执行函数体**:函数体内的代码被执行。 4. **返回结果**:执行完成后,...

    Java多态调用唯一性确定.pdf

    在实际测试过程中,Java多态性会带来函数调用路径不唯一的问题,使得在分桷Java函数调用路径时会产生冗余路径,导致设计出许多无用的测试用例。通过使用Soot开源工具和Java的反射机制,可以分析Java程序多态调用关系...

    C++的虚函数和JAVA的抽象函数

    在C++中,函数的调用基于参数列表和类型,而在Java中,除了参数列表,方法名的完全匹配(包括参数类型、数量以及顺序)也是必要的条件。 多态性(Polymorphism)是覆盖和重载的综合应用,尤其体现在虚函数和抽象...

    lesson03-04 Java类基础知识--自定义函数.ppt

    但是,需要注意的是,递归函数调用,即函数在其定义中调用自己的情况,必须确保存在一个明确的终止条件,否则会导致无限循环,如 `FactorialTest.java` 示例中可能涉及到的。 函数重载(Overload)是Java中一个重要...

    java函数语言大全

    函数调用:** 调用函数时,根据函数声明提供的信息提供相应的参数。如`result = add(3, 4);`会将3和4传入`add`函数,并将结果存储在`result`中。 **4. 无参数与无返回值函数:** 有些函数可能不需要参数,如`void ...

    java经典小程序-函数小程序

    在函数中,可能会遇到运行时错误,Java通过异常处理机制来捕获并处理这些错误。`try-catch-finally`块是处理异常的关键结构。 7. **访问修饰符**: 除了`public`,还有`private`, `protected`和默认(无修饰符)...

    java编程主要函数的用法详解

    6. **重载函数** 重载意味着在同一个类中可以有多个同名函数,但参数列表必须不同(参数个数、类型或顺序)。例如: ```java public void display(int num) { // 代码... } public void display(String text)...

    java kok 构造与析构函数

    总的来说,理解和掌握构造函数、析构函数(以及在Java中的`finalize()`方法)、函数的重载、类的继承以及函数覆盖,对于提升Java编程能力至关重要。同时,设计模式的运用可以提高代码的可维护性和可扩展性,使得大型...

    java函数使用查询包

    在Java编程语言中,函数是实现特定功能的代码块,可以被多次调用,从而提高代码的重用性。在“java函数使用查询包”中,我们可能找到了两个与Java函数使用相关的资源:`javascript.chm`和`JavaScript5.5 参数速查....

    java中main函数解析.docx

    在 Java 中,main 函数可以被重载,但是 JVM 只会调用名称为 "main" 的函数,且其参数类型必须是 String[] 或 String...。 在 Java 中,可以使用数组来存储命令行参数,然后在 main 函数中遍历数组来处理每个参数。...

    Java计算机语言函数应用

    函数,也称为方法,在Java中扮演着核心角色,它们是代码的可重用模块,允许我们通过调用一个名字来执行一系列操作。下面我们将深入探讨Java函数的应用及其相关知识点。 1. **函数定义与调用** - 函数的基本结构...

    Java语言中的 覆盖重载和多态

    方法重载是编译时多态,因为Java在编译时根据实际参数确定调用哪个重载方法。而方法覆盖则表现了两种多态性,如果对象引用的是本类实例,编译时多态;如果是子类实例,运行时多态。 综上所述,Java中的覆盖和重载...

    Java的重载和重写

    Java编程语言中的重载(Overloading)和重写(Overriding)是两个关键的概念,它们都是多态性的重要体现,但各自有着不同的含义和规则。 首先,我们来详细了解一下方法的重载。重载,简单来说,就是在一个类中定义多个...

Global site tag (gtag.js) - Google Analytics