如何在一个对象中合并两个不同的对象类型?

时间:2012-11-22 21:55:33

标签: java arrays object casting

callingmethod(){
File f=new File();  
//...
String s= new String();
//...

method( f + s);    // here is problem (most put f+s in object to send it to method)
}

无法改变方法args

method(Object o){
//...
//how to split it to file and String here 
}

任何事情都不清楚问问plz

2 个答案:

答案 0 :(得分:3)

最干净,最惯用的方法是创建一个简单的类来代表你的对:

static class FileString {
  public final File f;
  public final String s;
  FileString(File f, String s) { 
    this.f = f; this.s = s;
  }
}

然后写

method(new FileString(file, string));

内部方法:

FileString fs = (FileString)o;
// use fs.f and fs.s

根据更多细节,请使用我的示例中的嵌套类,或将其放入自己的文件中。如果你把它放在你实例化它的地方附近,那么你可以像我一样使构造函数成为私有或包私有。但这些只是更精细的细节。

答案 1 :(得分:1)

你可以,例如把它放在一个数组中:

method (new Object[] {f, s});

void method (Object o) {
    final Object[] arr = (Object[]) o;
    File f = (File) arr[0];
    String s = (String) arr[1];
}