Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подскажите как написать конструктор 
:(
    Опции темы
Корнелиус
Дата 14.12.2005, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 14.12.2005

Репутация: нет
Всего: 1



Код
class A{
       next  A;
// коструктор
// методы
      do(a){if next!=NULL next.do{a,a}}
      do(a,a ){if next!=NULL next.do{a,a,a}}
      do( a,a,a ){...}
}


Нужна вот такая кострукция. То есть просто список из пяти (например) элементов типа A. Можно ли такой список создать в конструкторе этого класса?

PM MAIL   Вверх
LSD
Дата 14.12.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код
public class A
{
  private A next;

  public A(int count)
  {
    if(count > 0)
      next = new A(count - 1);
  }
}

Добавлено @ 17:34
Только не забывай, что стек не резиновый.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Корнелиус
Дата 14.12.2005, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 14.12.2005

Репутация: нет
Всего: 1



А возможно ли на основе такой конструкции реализовать FileFilter и передавать его в fille.list(FileFilter)? Мне нужно поиск огранизовать по различным характеристикам...
PM MAIL   Вверх
LSD
Дата 14.12.2005, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата
А возможно ли на основе такой конструкции реализовать FileFilter и передавать его в fille.list(FileFilter)?

Не понимаю зачем, FileFilter-у нужно создавать цепочку из объектов.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Корнелиус
Дата 14.12.2005, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 14.12.2005

Репутация: нет
Всего: 1



А у меня пять процедур поиска - соответственно полям на форме"поиск файлов"... Честно говоря не хочется создавать 5 классов фильтров с различными accept(File dir, String name)...

Это сообщение отредактировал(а) Корнелиус - 14.12.2005, 21:10
PM MAIL   Вверх
LSD
Дата 14.12.2005, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Зачем с различными, вот например фильтр который принимает список расширений и по ним фильтрует:
Код
public class ListFileFilter implements FileFilter
{
  private String[] extensions;
  
  public ListFileFilter(String[] extensions)
  {
    this.extensions = extensions;
  }
  
  public boolean accept(File pathname)
  {
    if(pathname.isDirectory())
      return true;
    String fileName = pathname.getName();
    for(int i = 0; i < extensions.length; i++)
    {
      if(fileName.endsWith(extensions[i]))
        return true;
    }
    return false;
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Корнелиус
Дата 14.12.2005, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 14.12.2005

Репутация: нет
Всего: 1



Прошу прощения, мне нужен FilenameFilter - мне в результате просто список имен файлов нужен. Но не суть. Вышеуказанный фильтр отбирает файлы по расширению. Еще мне нужно, например, по ReadOnly - это ж новый класс фильтра , или я не понимаю чего-то?
Хочется, чтобы поиск выглядел так:

Код
class A{    
       next  A;    
// коструктор    
// методы    
     search(a){if next!=NULL next.do{a,a}}    
     search(a,a ){if next!=NULL next.do{a,a,a}}    
     search( a,a,a ){...}
}

где search(a) - фильтрeует по дате создания(считывает ее на форме)
search(a,a ) - по расширению файла
search(a, a, a ) - например по началу и окончанию файла
PM MAIL   Вверх
batigoal
Дата 14.12.2005, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Лучше, наверное, в таком виде:
Код

search(int parameterNumber, int parameterValue)

, где первый параметр определяет тип поиска, а второй - значение.

Это сообщение отредактировал(а) Lamer George - 14.12.2005, 23:37


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Корнелиус
Дата 15.12.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 14.12.2005

Репутация: нет
Всего: 1



Сделал так:
Код
public class Decorator {
  Decorator next;
  public Decorator(int count){
    if (count>0)
        {
           next=new Decorator(count-1);
    }
    else next=null;
 }
String [] search(TimeFileFilter tF){

  File cd = new File(Frame1.path);
  String [] s = cd.list(tF);
  if (next!=null) return next.search(Frame1.readOnlyF);
  else return s;
}
String [] search(ReadOnlyFileFilter roF){
  File cd = new File(Frame1.path);
  String [] s = cd.list(roF);
  if (next!=null) next.search(Frame1.readOnlyF);
  return s;
}
}


Вызываю так (решил проверить только первый метод search для начала):
Код
 Decorator d=new Decorator(1);
    String [] s=d.search(timeF); 

И прихожу к выводу что next в
Код
 if (next!=null) return next.search(Frame1.readOnlyF); 


уже в null не указывает, соответственно условие не работает. А почему?

PM MAIL   Вверх
Корнелиус
Дата 15.12.2005, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 14.12.2005

Репутация: нет
Всего: 1



)) Упс. Надо ж вызывать
Код
 Decorator = new Decorator(0); 

Так, вроде, жужжит. Спасибо за участие

Это сообщение отредактировал(а) Корнелиус - 15.12.2005, 16:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.3469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.