我有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)
此语句在我的实现中同时导入两个重载方法,因为我仅使用一个重载方法,而不是两个。
有什么方法可以选择性地静态导入重载方法吗?我的意思是,我可以仅静态导入我感兴趣的方法吗?
答案 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
重载分开使用,则必须将它们拆分为单独的非重载方法。