powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / В java нет делегатов?
29 сообщений из 29, показаны все 2 страниц
В java нет делегатов?
    #37804122
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В джаве нет делегатов? Или чего-нибудь схожего по функционалу?
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804139
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkВ джаве нет делегатов? Или чего-нибудь схожего по функционалу?
C# делегат это синтаксический сахар, который от кодера прячет подноготную паттерна Observer/Listener.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804154
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczavp.mkВ джаве нет делегатов? Или чего-нибудь схожего по функционалу?
C# делегат это синтаксический сахар, который от кодера прячет подноготную паттерна Observer/Listener.
как то ты витеевато. :)
Скажи что плохо, что нет и всё :))
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804227
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Скажи что плохо, что нет и всё :))
Нет и не нужен особо. :) Через анонимные классы все делают и не страдают особо.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804231
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
да. Дело привычки :). Строчек больше :)
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804263
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нету делегатов. Ну и не нужно, чеснслово.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804270
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПС. Партиал-классов тоже нету. :)
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804276
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПС. Партиал-классов тоже нету. :)
Ну, давайте вообще всё в этом посте перечислим. И свойства, и переопределение операторов, и рантайм генерики, и т.д.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804300
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНет и не нужен особо. :)
Petro123Строчек больше :)
ShSergeПС. Партиал-классов тоже нету. :)
Не хотелось бы устраивать холиваров. Давайте лучше поговорим о подобных инструментах в java.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804322
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока вижу только одно подобное решение - переопределение метода(-ов) дочерних классов.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804323
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkНе хотелось бы устраивать холиваров. Давайте лучше поговорим о подобных инструментах в java.
java.util.Observer, но оно используется редко.
в GUI своих листенеров навалом. А вместо общего обсервера там, в основном, JavaBeans PropertyChangeListener используется.
Т.е. зависит от того зачем оно вам понадобилось.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804327
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkПока вижу только одно подобное решение - переопределение метода(-ов) дочерних классов.
? При чем здесь переопределение ? Давайте на примере разберем. Показывайте свой делегат.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804420
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz? При чем здесь переопределение ?
Примерно так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
package javaapplication3;

interface SomethingLikeDelegat {
    public double doIt();
}

class Default implements SomethingLikeDelegat {
    @Override
    public double doIt() {
//      какие-то инструкции
        return 10;
    }
}

public class JavaApp {
    //переменная, которая будет ссылаться на экхемпляры различных наследников (с разными реализациями метода doIt())
    public static SomethingLikeDelegat l = new Default();

    public static void main(String[] args) {
//      какие-то действия, которые могут поменять значение l
        l.doIt();
//      снова они
        l = new SomethingLikeDelegat() {
            @Override
            public double doIt() {
                return System.currentTimeMillis() % 1000;
            }
        };
        System.out.println(
        l.doIt());
    }
}



Кода с делегатами нет - писать его некогда.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804436
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё верно. Только дефолтная реализация она опциональна. Поэтому правильный ответ не "через переопределение методов", а через "Анонимные классы". Переопределения метода может и не быть, когда используется лишь интерфейс. Хотя начиная с Java 6 реализацию интерфейса уже можно обзывать переопределением (@Override) хотя это и не верно с логической точки зрения, но верно с точки зрения назначения этой аннотации.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804460
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczправильный ответ не "через переопределение методов", а через "Анонимные классы".[quot avp.mk]
Код: java
1.
2.
3.
4.
5.
6.
7.
class Default implements SomethingLikeDelegat {
    @Override
    public double doIt() {
//      какие-то инструкции
        return 10;
    }
}



BlazkowiczПереопределения метода может и не быть, когда используется лишь интерфейс.
Если я хочу создать экземпляр (а я его содаю) переопределения метода не может не быть, когда используется интерфейс.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804465
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avp.mk
Код: java
1.
2.
3.
4.
5.
6.
7.
class Default implements SomethingLikeDelegat {
    @Override
    public double doIt() {
//      какие-то инструкции
        return 10;
    }
}


Это не анонимный класс - я дал ему имя "Default"..
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804473
Сына
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkЕсли я хочу создать экземпляр (а я его содаю) переопределения метода не может не быть, когда используется интерфейс.
Если у метода нет реализации, то там и переопределять нечего.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804483
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сынаavp.mkЕсли я хочу создать экземпляр (а я его содаю) переопределения метода не может не быть, когда используется интерфейс.
Если у метода нет реализации, то там и переопределять нечего.
А, вот вы о чём. Ну да, пожалуй.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804517
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkЭто не анонимный класс - я дал ему имя "Default"..
Это и не делегат, это реализация интерфейса. Делегат вот:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class JavaApp {
...
l = new SomethingLikeDelegat() {
            @Override
            public double doIt() {
                return JavaApp.this.delegatedDoIt();
            }
        };
...

double delegatedDoIt(){
   //implementation
}

}
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804548
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Можете написать java код который компилируется и работает?
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804745
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkBlazkowicz,
Можете написать java код который компилируется и работает?
Сначала Вы написали, что не надо устраивать холиваров (первое нарушение - самомодерирование), а теперь хотите, чтобы кто-то за Вас написал код?
Обалдеть!
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804811
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeavp.mkBlazkowicz,
Можете написать java код который компилируется и работает?
Сначала Вы написали, что не надо устраивать холиваров (первое нарушение - самомодерирование)
Я написал "хотелось бы" т.е. вежливо (ну по крайней мере хотел) предложил поговорить по теме , а не впускаться в бесконечные разговоры о том какой язык лучший.

ShSergeа теперь хотите, чтобы кто-то за Вас написал код?Обалдеть!
Нет, не хочу. У меня нет сейчас таких задач, которые требовали делегатов. Вопрос был чисто теоретический.
Я бы хотел - чтобы те, кто тут отписываются не писали не работающую бесполезную хрень.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804885
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и не пищите хрень. Кто же Вас заставляет? Как-то, с явой дружу гораздо дольше, чем с сишарпом (от начала того и другого). Чё-то, в процессе разработки, таких вопросов никогда не возникало. Например, в яве делается так, а в сишарпе - эдак. Ну и что? Какие нафиг аналоги? Аналог goto в сишарпе имеется? Никогда не пользовался. :)
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804906
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkМожете написать java код который компилируется и работает?
Blazkowicz Вам его написал :) Неужто сложно разобраться?
Так и быть, разжую его пример:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public class JavaApp {
    interface SomethingLikeDelegat {
        public double doIt();
    }

    public static SomethingLikeDelegat l;

    public void runDelegat() {
        l = new SomethingLikeDelegat() {
            @Override
            public double doIt() {
                return JavaApp.this.delegatedDoIt();
            }
        };
        System.out.println(l.doIt());
    }

    double delegatedDoIt() {
        return 1;
    }

    public static void main(String[] args){
        new JavaApp().runDelegat();
    }
}
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37804909
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Ассимилировал с Вашим кодом.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37805148
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас в java расцвет технологий которые работают за счет рефлекшена, я честно говоря не помню когда последний раз писал обработчик события пользовательского интерфейса с использованием анонимного класса. Например в моём веб фреймворке я пишу так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class HelloWorldViewModel {
   
     ...
   
     @Command public void sayHello() {
          ...
     }

     ...

}


Всё одной аннотации достаточно чтобы слушать события с именем "sayHello" во вьюхе, ZK сам разберется и прибиндит ActionListener Намного компактнее обшарпанных делегатов.
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37805165
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть по факту что-то типа указателя на метод в java есть, это Method
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37805301
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большой Синий Кит, vimba,

Спасибо)
...
Рейтинг: 0 / 0
В java нет делегатов?
    #37805431
some1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vimba,

авторТо есть по факту что-то типа указателя на метод в java есть, это Method

Все-таки, это разные вещи, делегаты и Метод. В шарпе Метод тоже есть и это не мешает одновременно с ним существовать делегатам.
Чтобы направить дискуссию в русло холивара, скажу, что делегаты это, конечно сахар, но я бы не возражал, чтобы они в Яве были
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / В java нет делегатов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]