Java 静态导入重载方法
我有一个DateUtils.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)方法。 当我尝
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
重载分开,则必须将它们拆分为单独的非重载方法