如何在Java中创建接口对象

如何在Java中创建接口对象,java,Java,对于我的CS类,我需要使用一些预制代码并使用电子表格中的接口。我已经有几个类了,程序、电子表格、PersistanceHelper和一个可保存的接口 package persistence; public interface Savable { public String[] getSaveData(); public void loadFrom(String[] saveData); } package persistence;

对于我的CS类,我需要使用一些预制代码并使用电子表格中的接口。我已经有几个类了,程序、电子表格、PersistanceHelper和一个可保存的接口

 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();