首页 > 解决方案 > 找不到符号`asIterator()`

问题描述

我有一个文件,adapter/new/myAdapter.java

package adapter.new;
import adapter.old.Person;

import java.util.Enumeration;
import java.util.Iterator;

public class GroupAdapter implements Group {

    private adapter.old.Group oldgroup;

    public GroupAdapter(adapter.old.Group oldgroup) {
        this.oldgroup = oldgroup;
    }

    @Override
    public Iterable<Person> getPersons() {
      return new Iterable<Person>() {
        @Override
        public Iterator<Person> iterator() {
          return oldgroup.getPersons().asIterator();
        }
      };
    }
}

这是我的adapter/old/Group.java

package adapter.old;

import java.util.Enumeration;
import java.util.Vector;

public class Group {
  private String number;
  private String name;
  private Vector<Person> persons;

  public Group(String number, String name) {
    this.number = number;
    this.name = name
    persons = new Vector<>();
  }

  public Enumeration<Person> getPersons() {
    return persons.elements();
  }  
}

当我尝试编译这个:

javac old/*.java new/*.java

我收到此错误:

new/GroupAdapter.java:41: error: cannot find symbol
          return oldgroup.getPersons().asIterator();
                                       ^
  symbol:   method asIterator()
  location: interface Enumeration<Person>
1 error

我究竟做错了什么?我或多或少地遵循了一个教程,但我找不到哪里出错了。

标签: javaiterator

解决方案


asIterator 方法被添加到 java9 中的 Enumeration 类中。检查您正在使用的 javac 版本。

枚举 javadoc java 8

枚举 javadoc java 9


推荐阅读