Java events vs C# - новое в 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 )
Я что-то упустил? похоже, что должен быть более простой способ делать события, чем руководство выше.

564   3  

3 ответов:

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

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

"удивительно", нет?

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

Comments

    Ничего не найдено.