Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 静态导入重载方法_Java_Android_Import_Static_Overloading - Fatal编程技术网

Java 静态导入重载方法

Java 静态导入重载方法,java,android,import,static,overloading,Java,Android,Import,Static,Overloading,我有一个DateUtils.java文件,其中包含与日期相关的实用程序方法。我重载了方法setDate(),如下所示: // Overloaded method #1 public static void setDate(Date date) { } // Overloaded method #2 public static void setDate(long timestamp) { } 在我的其他类文件中,我只使用上述方法中的一种。例如,setDate(Date-Date)方法。 当我尝

我有一个DateUtils.java文件,其中包含与日期相关的实用程序方法。我重载了方法
setDate()
,如下所示:

// Overloaded method #1
public static void setDate(Date date) { }

// Overloaded method #2
public static void setDate(long timestamp) { }
在我的其他类文件中,我只使用上述方法中的一种。例如,
setDate(Date-Date)
方法。 当我尝试静态导入此方法时,它的导入方式如下:

import static com.example.app.DateUtils.setDate;
该语句在我的实现中导入两个重载方法,因为我只使用一个重载方法,而不是两个重载方法

有没有办法有选择地静态导入重载方法?我的意思是,我可以只静态导入我感兴趣的方法吗

有没有办法选择性地静态导入重载方法?我的意思是,我可以只静态导入我感兴趣的方法吗

不,你不能。请记住,静态导入(通常是导入)只是一种定义引用事物的速记版本的机制。所有这些
导入java.util.Map
does允许您使用
Map
,否则您必须键入
java.util.Map
。对于静态导入也是一样的,它只是一种获取(在您的示例中)com.example.all.DateUtils.setDate的简写名称的方法

如果可以只导入一个重载而不导入另一个重载,则只需使其与有效签名不匹配:

setDate(1234L);
…这并不是很有用

如果要将使用
long
重载与使用
Date
重载分开,则必须将它们拆分为单独的非重载方法