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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получание значения переменой 
:(
    Опции темы
Asafj
Дата 11.1.2011, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть метод с помощью которого можно получить значение переменой-true false. Нужно написать функцию, которая вызывает 
другой метод после того как значение переменой стало true. Как это можно сделать?
PM MAIL   Вверх
priam220
Дата 11.1.2011, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 8



Код

public class MyClass{    
    private Boolean checker;

    public static void main(String[] args){
     MyClass mc = new MyClass();
     mc.setChecker(false);
     mc.setChecker(true);
    }
    
    public void setChecker(boolean checker){
     this.checker = checker;
     if (checker)
         modifier();        
    }
    
    private void modifier(){
     System.out.println("if checker is " + checker + " this method is called");
    }
}


Вывод:
if checker is true this method is called


P.S. В java нет функций.

Это сообщение отредактировал(а) priam220 - 11.1.2011, 23:57
PM MAIL   Вверх
Asafj
Дата 12.1.2011, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это не совсем, что нужно
Я получаю из другого класса только значение переменной
Это значение сначало false потом становится true
И после того как оно поменялось надо взвать другой метод
т.е
Код

boolean upd;
void b(){
if (upd) {
e();
}


но если b = false метод не вызовится
я пробовал что-то вроде этого но в многопоточной программе я думаю это не вариант:
Код

boolean upd;
void b(){
if (upd) {
e();
}
else {Thread t = new thread();
t.start();
t.sleep(1000);
b();}

 
PM MAIL   Вверх
priam220
Дата 12.1.2011, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 8



Цитата(Asafj @  11.1.2011,  22:59 Найти цитируемый пост)
которая вызывает другой метод после того как значение переменой стало true


Цитата(Asafj @  12.1.2011,  00:08 Найти цитируемый пост)
но если b = false метод не вызовится




не могу связать эти предложения, - так тебе и не надо вызывать modifier() когда false?...

PM MAIL   Вверх
lazycat
Дата 12.1.2011, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Думаю, что Вам надо нечто в таком роде:

Код

boolean upd;
boolean lastupd  = null;

  void b(){
    if ((lastupd  == null) || (lastupd  != upd)) {
      e();
      lastupd = upd;
    } 
  
  } 

PM MAIL   Вверх
Asafj
Дата 12.1.2011, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



значение меняется в другой части приложения

Добавлено через 3 минуты и 49 секунд
lazycat,  в этом случае если upd=false метод не вызовется 
PM MAIL   Вверх
priam220
Дата 12.1.2011, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 8



Цитата(Asafj @  12.1.2011,  00:23 Найти цитируемый пост)
значение меняется в другой части приложения

так ты будешь долго писать свой код, особенно в многопоточной программе. Свойство класса может меняться только из одного места, - из самого класса, с помощью метода-сеттера,  и в твоем случае, он должен быть синхронизирован (либо свойство должно быть объявлено как volatile).
Надеюсь, что, наконец, понял условие. 

Это сообщение отредактировал(а) priam220 - 12.1.2011, 01:09
PM MAIL   Вверх
Asafj
Дата 12.1.2011, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А если доступен тоько get - метод из этого класса?
PM MAIL   Вверх
priam220
Дата 12.1.2011, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 8



Цитата(Asafj @  12.1.2011,  01:15 Найти цитируемый пост)
А если доступен тоько get - метод из этого класса?

если доступен только get, значит:

1. комуто было лень писать  set
2. значение свойства не должно меняться.

Если этот класс скомпилин  (просто добавить нужный метод не можешь) и он не финальный, то ты его можешь расширить, дописав set в потомке
плохое решение. 

Это сообщение отредактировал(а) priam220 - 12.1.2011, 01:42
PM MAIL   Вверх
Temdegon
Дата 12.1.2011, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 9



Объясни, ты это делаешь в своем коде? Или у тебя есть готовый класс, который ты изменить не можешь, и можешь только вызывать геттер?
PM MAIL   Вверх
Asafj
Дата 12.1.2011, 01:29 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Temdegon, да
PM MAIL   Вверх
priam220
Дата 12.1.2011, 01:49 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 8



Надеюсь, я один не понял, что означало слово "да".  smile 
PM MAIL   Вверх
Temdegon
Дата 12.1.2011, 01:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 9



Краткость конечно с.т., но я лично не понял, что значит "да" в этом контексте. 
PM MAIL   Вверх
Asafj
Дата 12.1.2011, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну собственно ответ на твой вопрос. Второй.
PM MAIL   Вверх
lazycat
Дата 12.1.2011, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Asafj @  12.1.2011,  00:23 Найти цитируемый пост)
lazycat,  в этом случае если upd=false метод не вызовется 


Ошибаетесь, метод будет вызываться при каждом ИЗМЕНЕНИИ значении переменной, а при первом обращении к ней вызовется при любом значении. 
Правда с кодом я протупил (писал его практически засыпая) и написал чушь. Реально он должен выглядеть так:

Код


Boolean lastupd  = null;

  void b(){
    boolean upd = someObject.getUpd();

    if (lastupd  != upd) {
      e();
      lastupd = upd;
    } 
  
  }


PM MAIL   Вверх
techmax
Дата 12.1.2011, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



посмотри может есть какой-нибудь листнер на изменение переменной. 
или Напиши какой-нибудь класс для изменения этого свойства
Код

  class A{

static setSomeValue(SomeClass sc,boolean flag){
sc.setFlag(flag);
if(flag){
//сделать чтонибудь

}



PM MAIL Skype   Вверх
Asafj
Дата 12.1.2011, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я не понимаю - пусть Upd примет значение. Метод е() выполнится или нет от ситуации. 
Каким образом выполнение сюда вернется после изменения значения. Он должен ждать изменения с false на true.
PM MAIL   Вверх
Asafj
Дата 12.1.2011, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



листнер на изменение переменной я думаю подошел бы
но где ж его взять?
PM MAIL   Вверх
Kircul
Дата 12.1.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 6
Всего: 7



Цитата(Asafj @  12.1.2011,  12:14 Найти цитируемый пост)
листнер на изменение переменной я думаю подошел бы
но где ж его взять? 

Ну что значит где? Возможно некоторые ЯП поддерживают данные возможности на уровне языка, но не Java (философия не та). Если вам нужен слушатель то напишите этот код сами.
Код

class TestClass {
    private Object value;
    private Listener listener;

...

    public void setValue(Object value) {
         this.value = value;
         if (listener != null) {
             listener.onValueChanged(value);   
         }
    }

    public void setListener(Listener listener) [
        this.listener = listener;
    }
}

interface Listener {
    void onValueChanged(Object newValue);
}

Собственно ничего сверхъестественного. Читаем тут.

Это сообщение отредактировал(а) Kircul - 12.1.2011, 13:40
PM   Вверх
jk1
Дата 12.1.2011, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 40
Всего: 75



Цитата

Если вам нужен слушатель то напишите этот код сами.


Или используйте стандартную реализацию


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
priam220
Дата 12.1.2011, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 8



lazycat,  у тебя NPE выскочит.


Код

public void setValue(Object value) {


исходя из условия нет этого метода в классе. 
Мне кажется ни листенеры ни наблюдатели тут не нужны. Человеку надо почитать что такое инкапсуляция и переписать свой код нормально.

Это сообщение отредактировал(а) priam220 - 12.1.2011, 14:48
PM MAIL   Вверх
math64
Дата 12.1.2011, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Если это свой код или чужой с исходниками - переписать, чтобы были сеттер и листенер.
Если исходников нет - только опрос в Thread'е, что будет с запаздыванием.

PM   Вверх
Asafj
Дата 12.1.2011, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



опрос в треде  - эт что значит?
PM MAIL   Вверх
priam220
Дата 12.1.2011, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 7
Всего: 8



Цитата(Asafj @  12.1.2011,  19:26 Найти цитируемый пост)
опрос в треде  - эт что значит?

это то, что ты пытался с потоком навоять.  


PM MAIL   Вверх
math64
Дата 13.1.2011, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Код

class A {
int x;
public int getX() { return x; }
protected void setX(int x) { this.x = x; } 
}

a) Сеттера нет, но есть исходник - рефакторинг "добавить сеттер" с установленным флажком "заменить обращения к переменной на вызов сеттера"
b) Сеттер есть, но он не public, а protected, его можно переопределить в производном классе:
Код

class MyListener {
  public void e(A a) {
    ...
  }
}
class MyA {
  MyListener l;
  public MyA(MyListener l) {
    super();
    this.l = l;
  }
  protected void setX(int x) {
    if (x != getX()) {
      super.setX(x);
      l.e(this);
    } 
  }
}
MyListener l = new MyListener();
A a = new MyA(l);

c) Сеттера нет или он private -  опрос в Thread'e:
Код

boolean terminate;
void f() {
  final A a = new A();
  Runnable r = new Runnable() {
    public void run() {
      int oldX = a.getX();
      try {
        while(!terminate) {
          int newX = a.getX();
          if (newX != oldX) {
            oldX = newX;
            e(a);
          } else {
            Thread.sleep(1000);
          }
        } 
      } catch(InterruptedException e) {
      }
    }
  };
  terminate = false;
  Thread t = new Thread(r);
  t.start();
  ...
  terminate = true;
}
void e(A a) {
  ...
}



Это сообщение отредактировал(а) math64 - 13.1.2011, 09:06
PM   Вверх
Asafj
Дата 13.1.2011, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо 
А с вот это объясни: 

Код

terminate = false;
  Thread t = new Thread(r);
  t.start();
  ..
  terminate = true;

PM MAIL   Вверх
Asafj
Дата 13.1.2011, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А здесь что хуже использовать 
Код

 Runnable r = new Runnable() {
    public void run() {
      int oldX = a.getX();
      try {
        while(!terminate) {
          int newX = a.getX();
          if (newX != oldX) {
            oldX = newX;
            e(a);
          } else {
            Thread.sleep(1000);
          }
        } 
      } catch(InterruptedException e) {
      }
    }
  };

или wihle(!a.getx());
PM MAIL   Вверх
math64
Дата 13.1.2011, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Переменная terminate управляет завершением Thread. Как только terminated устанавливается в true, поток на очередном обороте завершается.
Если нужно ждать только один раз - можно while(!a.getX() && !terminate) { ... }.
terminate лучше оставить, чтобы можно было завершить Thread и тогда, когда getX() никогда не станет true.
PS: для булевых свойств геттер обычно называется isX().
PM   Вверх
Asafj
Дата 13.1.2011, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А все таки когда terminate должен вызываться?
PM MAIL   Вверх
math64
Дата 14.1.2011, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Установи terminate = true; когда нить больше не нужна. Если она должна работать всегда, это делается перед при завершением программы.
PM   Вверх
Kircul
Дата 14.1.2011, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 6
Всего: 7



math64
Я конечно не гуру, но мне кажется что прерывать поток/нить правильнее будет как в данном туторе. Не стоит изобретать велосипед.
PM   Вверх
jk1
Дата 14.1.2011, 13:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 40
Всего: 75



Цитата

Не стоит изобретать велосипед.


Ага. И раз уже заговорили о велосипедах, то прерывать такой поток перед выходом из приложения не обязательно.
Можно просто запустить его как daemon:
Код

thread.setDaemon(true);



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Asafj
Дата 14.1.2011, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А если здесь isX() =false несколько секунд насколько плохо использовать вместо потоков 
while(!isX());
PM MAIL   Вверх
Asafj
Дата 15.1.2011, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А если здесь isX() =false несколько секунд насколько плохо использовать вместо потоков 
while(!isX());
PM MAIL   Вверх
Asafj
Дата 16.1.2011, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 А здесь вот конкретно для моего случая 
  Нужно сделать break только тогда, когда isX() вернет true
  А сейчас после thread.start() - выход.
switch (key) {
case value:
    final Runnable r = new Runnable() {
        public void run() {
         while(!isX()) {
            try {
                   Thread.sleep(10000);
               } catch (InterruptedException ex) {
            }
         }
         }
    };
    Thread thread = new Thread®;
    thread.start();

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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Thread дожен что-то еще делать кроме опроса isX() - (например, после выхода из цикла) иначе он бесполезен. Ну и вызови setDaemon(), как посоветовали, чтобы программы нормально завершалась, еслы isX() всегда возвращает true.
PM   Вверх
Asafj
Дата 17.1.2011, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



здесь thread должен ждать пока переменная не станет true и только затем должен быть break.

PM MAIL   Вверх
Asafj
Дата 18.1.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код


try {
switch (key) {
case value:
    final Runnable r = new Runnable() {
        public void run() {
         while(!isX()) {
            try {
                   Thread.sleep(10000);
               } catch (InterruptedException ex) {
            }
         }
         }
    };
    Thread thread = new Thread®;
    thread.start();
      try {
     thread .join();
          } 
           catch(InterruptedException e) {
          }
    break; 


Вот здесь после thread.join() поток разве жив?

PM MAIL   Вверх
Kircul
Дата 18.1.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: 6
Всего: 7



[offtopic]Asafj, прочитайте вы наконец хоть какую-нибудь книгу по Java![/offtopic]
PM   Вверх
Asafj
Дата 18.1.2011, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А все таки - кто-нибудь в состоянии обьяснить- почему поток не завершается после выхода из цикла?
PM MAIL   Вверх
math64
Дата 18.1.2011, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Если основной поток ждёт завершения второго потока, ждущего isX() == false, зачем тебе второй поток? Опрашивай isX() в основном. Второй поток нужен только для того, чтобы освободить основной поток для какого-либо полезного дела.
PM   Вверх
Asafj
Дата 18.1.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как в основном опрашивать?:
while(!isX()); я думаю здесь не вариант
А если while(!isX()) {Thread.sleep();} зависает
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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