如何在Java中创建接口对象
对于我的CS类,我需要使用一些预制代码并使用电子表格中的接口。我已经有几个类了,程序、电子表格、PersistanceHelper和一个可保存的接口如何在Java中创建接口对象,java,Java,对于我的CS类,我需要使用一些预制代码并使用电子表格中的接口。我已经有几个类了,程序、电子表格、PersistanceHelper和一个可保存的接口 package persistence; public interface Savable { public String[] getSaveData(); public void loadFrom(String[] saveData); } package persistence;
package persistence;
public interface Savable {
public String[] getSaveData();
public void loadFrom(String[] saveData);
}
package persistence;
import java.io.*;
import java.util.*;
public class PersistenceHelper {
public static void save(String filePath, Savable toSave) throws Exception {
String[] data = toSave.getSaveData();
PrintStream out = new PrintStream(new File(filePath));
try {
for (String datum : data) {
out.println(datum);
}
} finally {
out.close();
}
}
public static void load(String filePath, Savable toLoadTo) throws Exception {
ArrayList<String> data = new ArrayList<String>();
Scanner input = new Scanner(new File(filePath));
try {
while (input.hasNextLine()) {
data.add(input.nextLine());
}
} finally {
input.close();
}
String[] dataArray = new String[data.size()];
toLoadTo.loadFrom(data.toArray(dataArray));
}
}
//这些是我不允许更改的类和接口,我需要使用PersistanceHelper中的save和load方法,我正在努力创建一个可保存类型的变量。接口只是描述类在外部的行为。要获取实例,它必须知道如何从实现指定的已声明函数中检索结果:
然后,您可以执行以下操作:
Savable s = new MySavable();
String[] strings = s.getSaveData();
s.loadFrom(strings);
通过子类savableinpl实现savable接口类。以及与此接口一起使用的对象 这不是拥有界面的全部意义吗
public class SavableImpl implements Savable{
public String[] getSaveData(){
// implementation goes here
}
public void loadFrom(String[] saveData){
// implementation here
}
}
然后你可以这样做:-
Savable savable = new SavableImpl();
我很确定,无论是谁设计了现有的类,都意味着要做同样的事情。你们并没有提出任何问题。看来我给出了和上面一样的答案。然而,这是这个问题的唯一答案。
Savable savable = new SavableImpl();