События Java против C # - новинка для Java - PullRequest
3 голосов
/ 27 октября 2010

Я новичок в мире Java.Я иду из C #.Я пытаюсь настроить пользовательское событие.Вот как я мог бы сделать это в C #

class A
{
   public EventHandler Changed;

   public void FunctionA() 
   {
       if(Change != null)
            Changed(this, null); //fire the event!
   }
}

class B
{
     private A instanceOfA = new A();
     public void FunctionB()
     {
        A.Changed+= new EventHandler(onAChanged); //subscribe to event
     }
     public void onAChanged(object sender, EventArgs args)
     {
          //handle the event
     }
 }

Теперь я пытаюсь прочитать о пользовательских событиях Java, но все примеры, которые я нахожу, показывают, что мне нужно сделать 2 пользовательских класса (http://www.exampledepot.com/egs/java.util/custevent.html) Я что-то упустил?похоже, что должен быть более простой способ проведения мероприятий, чем в приведенном выше руководстве.

Ответы [ 3 ]

4 голосов
/ 27 октября 2010

Как уже говорилось, в Java-событиях это шаблон, в C # они являются языковой функцией.Ссылка, которую вы указали, является правильным способом справиться с событиями.

«Удивительно», нет?

2 голосов
/ 27 октября 2010

Нет событий на языке Java.Вы должны использовать шаблон, подобный тому, который вы предоставили для обработки событий.

0 голосов
/ 27 октября 2010

В Java нет понятия делегата и, следовательно, нет «событий» в стиле C #. Чтобы создать аналогичную систему, вам нужно использовать шаблон Observer, как показано в указанной вами ссылке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...