Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Откуда берётся файл <имя_класса>$1.class


Автор: Dims 4.7.2008, 19:38
При отладке одной ошибки наткнулся на тот факт, что при компилляции получается "лишний" файл *.class по сравнению с файлами *.java.

А именно, есть класс NETagger, который находится в одном java-файле, а в папке откомпилированных файлов образуется два файла NETagger.class и NETagger$1.class

Может быть, это какие-то внутренние классы так кладутся?

Автор: Greg 4.7.2008, 20:55
Цитата(Dims @  4.7.2008,  19:38 Найти цитируемый пост)
Может быть, это какие-то внутренние классы так кладутся? 
 Внутренние анонимные классы, если быть точным.

Автор: Dims 7.7.2008, 19:41
А этот внутренний анонимный класс должен быть любого типа и внутри класса NETagger? Или это должен быть анонимный наследник от NETagger, определённый где-то ещё?

Автор: Aristotelb 7.7.2008, 19:55
Любой анонимный класс, любого типа в пределах NETagger

Автор: chief39 7.7.2008, 20:27
Дамб пример. Иннер класс тупой, ничего толкового не делающий(насчёт скомпилится - надо проверить).
Но файлик ради него появится.

Код

class NETagger{

//members

private Collection xxx;

// methods
public void setXxx(Collection xxx){this.xxx=xxx;}

public Collection getXxx(){return this.xxx;}


public Iterator getIterator(){

// anonymous inner class 
return new Iterator(){
   public boolean hasNext(){
      return true;
   }
   public Object next(){
       return new String("nihrena tut");
   }


}

}

}

Точки с запятыми надо проверить и методы интерфейса Iterator - не помню фто там исчё

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)