静态导入重载方法

时间:2019-04-10 13:22:23

标签: java android import static overloading

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

setDate()

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

setDate(Date date)

此语句在我的实现中同时导入两个重载方法,因为我仅使用一个重载方法,而不是两个。

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

1 个答案:

答案 0 :(得分:2)

  

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

不,您不能。请记住,静态导入(通常是导入)仅是一种定义引用事物的简写形式的机制。 Set wsh = VBA.CreateObject("WScript.Shell") Dim waitOnReturn As Boolean: waitOnReturn = True Dim windowStyle As Integer: windowStyle = 1 exepath = "C:\Program (x86)\Google\Chrome\Application\chrome.exe" windowStyle = 0 waitOnReturn = True wsh.Run Chr(34) & exepath & Chr(34) & " -url " & url, windowStyle, waitOnReturn 所要做的就是让您使用import java.util.Map;,否则您将不得不键入Map。静态导入是一样的,它纯粹是获得java.util.Map的简写名称的一种方法。

如果您可以仅导入一个重载而不导入另一个重载,则要做的就是使此重载与有效签名不匹配:

com.example.all.DateUtils.setDate

...这没什么用。

如果要将setDate(1234L); 重载与使用long重载分开使用,则必须将它们拆分为单独的非重载方法。