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);
}
}