Функция обратного вызова

Просто нужно выполнить приведение перед вызовом метода. return ((MyValue) t).getValue();, так что компилятор может знать, что он вызывает метод MyValue.

   static <T> int getValue(T t) {
        return ((MyValue) t).getValue();
    }

в случае нескольких классов вы можете проверить наличие экземпляров, используя оператор instanceof, и вызвать метод .. как показано ниже

  static <T> int getValue(T t) {
        //check for instances
        if (t instanceof MyValue) {
            return ((MyValue) t).getValue();
        }
        //check for your other instance
  return 0; // whatever for your else case.
5
задан Joel Coehoorn 12 March 2009 в 14:54
поделиться

4 ответа

"funct" должен быть методом со следующей подписью:

void funct(IAsyncResult ar) { }
6
ответ дан 14 December 2019 в 01:18
поделиться

Вы не можете только использовать метод для своего обратного вызова. Функция должна иметь определенную подпись (список параметров).

2
ответ дан 14 December 2019 в 01:18
поделиться

То, как делает Вашу 'funct' сигнатуру метода, похоже?

Это возвращается пусто?

Это имеет точно один параметр типа IAsyncResult?

Другими словами, Ваш 'funct' метод соответствует делегату Asynccallback?

0
ответ дан 14 December 2019 в 01:18
поделиться

каков funct? действительно ли это - делегат? если это, это - подпись, не compatibile с делегатом AsyncCallback.

funct должен быть методом, бывшим похожим на это:

void SomeMethod(IAsyncResult ar)
1
ответ дан 14 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: