如何允许参数为多种类型?

Jef*_*ant 2 java

我是Java新手.如果这是一个愚蠢的问题,我很抱歉.我想提交一个参数,该参数可以是文件或字符串,然后我可以用它来创建文件.这是我到目前为止:

public class DefaultOptions {

  public File setChooser(JFileChooser chooser, dir) {

  }

}


DefaultOptions dOptions = new DefaultOptions() {
  public File setChooser(chooser, dir) {
    if (!(dir instanceof java.io.File)) {
      String ds = dir.toString(); 
      File wd = new File(ds);
    } else {
      wd = (File) dir;
    }
    chooser.setCurrentDirectory(wd);
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以为此行使用什么签名:

  public File setChooser(JFileChooser chooser, dir)         
Run Code Online (Sandbox Code Playgroud)

如果没有办法做到这一点,我该如何简化呢?

sha*_*naw 5

用途Object:

public File setChooser(JFileChooser chooser, Object dir) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但是,正如评论中指出的那样,方法重载会 大概 绝对会更好:

public File setChooser(JFileChooser chooser, String dir) {
     // handle String case
}

public File setChooser(JFileChooser chooser, File dir) {
     // handle File case
}
Run Code Online (Sandbox Code Playgroud)