Android XmlSerializer 保存文件问题

XmlSerializer serializer = Xml.newSerializer();
XmlSerializer是个接口,那这行代码怎么理解?求大牛指导

这是XML解析的实例:

 public class TestCase extends AndroidTestCase {

    public void test() {
//        writeXmlToLocal();

        List<Person> personList = parserXmlFromLocal();

        for (Person person : personList) {
            Log.i("TestCase", person.toString());
        }
    }

    /**
     * 写xml文件到本地
     */
    private void writeXmlToLocal() {
        List<Person> personList = getPersonList();

        // 获得序列化对象
        XmlSerializer serializer = Xml.newSerializer();

        try {
            File path = new File(Environment.getExternalStorageDirectory(), "persons.xml");
            FileOutputStream fos = new FileOutputStream(path);
            // 指定序列化对象输出的位置和编码
            serializer.setOutput(fos, "utf-8");

            serializer.startDocument("utf-8", true);    // 写开始 <?xml version='1.0' encoding='utf-8' standalone='yes' ?>

            serializer.startTag(null, "persons");        // <persons>

            for (Person person : personList) {
                // 开始写人

                serializer.startTag(null, "person");    // <person>
                serializer.attribute(null, "id", String.valueOf(person.getId()));

                // 写名字
                serializer.startTag(null, "name");        // <name>
                serializer.text(person.getName());
                serializer.endTag(null, "name");        // </name>

                // 写年龄
                serializer.startTag(null, "age");        // <age>
                serializer.text(String.valueOf(person.getAge()));
                serializer.endTag(null, "age");        // </age>

                serializer.endTag(null, "person");    // </person>
            }

            serializer.endTag(null, "persons");            // </persons>

            serializer.endDocument();        // 结束
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private List<Person> getPersonList() {
        List<Person> personList = new ArrayList<Person>();

        for (int i = 0; i < 30; i++) {
            personList.add(new Person(i, "wang" + i, 18 + i));
        }

        return personList;
    }


}

接口不能new,这里也不是new出来的,是通过Xml类的静态方法newSerializer()获得一个XmlSerializer对象,再把这个对象赋值给serializer引用

您是怎么分析出来它是个引用的啊?