Мое приложение позволяет пользователю создавать свои собственные методы косвенно, и позже мне нужно будет обратиться к этим методам. Мне интересно, есть ли способ (для проверки ошибок) проверить, существует ли метод, не пытаясь его выполнить. Если я просто попробую вызвать метод и его не существует, это приведет к сбою моего приложения.Есть ли способ «зондировать» метод общего lisp
2
A
ответ
7
Также см функцию FIND-METHOD: http://www.lispworks.com/documentation/HyperSpec/Body/f_find_m.htm#find-method
4
Это действительно не сбой, а сигнал состояния. Если это условие не обрабатывается, будет введен отладчик. См. CLHS, Section 9.1, для получения информации о том, как использовать систему условий.
В любом случае, вы можете просто использовать fboundp
для проверки.
1
Одним из решений было бы обеспечить «ничего не делать» метод GF, рассылая на классе Т (суперкласс всех классов). Вам понадобится это для всех GF, на которых вы реализуете методы. Также было бы возможно, чтобы этот метод «ничего не делал» регистрировал некоторые данные, возможно, класс каждого аргумента, для целей аудита.
Смежные вопросы
- 1. «разворачивается» для общего lisp?
- 2. Есть ли лучший способ заполнения общего списка из SQL DataAdapter?
- 3. Есть ли способ разыменовать список в общем lisp?
- 4. Есть ли способ использовать AllegroGraph с Lisp, отличным от ACL?
- 5. Есть ли способ определить функцию в emacs lisp?
- 6. Есть ли способ сохранить состояние REPL Common Lisp или Scheme?
- 7. Есть ли лучший способ написать метод find_messages_by_slug_or_404?
- 8. есть ли более чистый способ отменить метод?
- 9. Есть ли способ принудительно вызвать переопределенный метод?
- 10. Есть ли способ переопределить метод переменной экземпляра
- 11. Есть ли способ распараллеливать метод добавления Pandas?
- 12. Есть ли способ использовать «unset» как метод?
- 13. Есть ли лучший способ написать этот метод?
- 14. Есть ли способ Groovy сделать метод синхронизированным?
- 15. Есть ли лучший способ проверить этот метод?
- 16. Есть ли способ переключить метод .append() jQuery?
- 17. Есть ли способ узнать метод вызова?
- 18. Есть ли способ переопределить метод setActivated?
- 19. Есть ли способ «переопределить» метод с отражением?
- 20. Есть ли простой способ анимировать метод ScrollableControl.ScrollControlIntoView?
- 21. Есть ли способ перегрузить метод в протоколе?
- 22. FreePascal RTTI. Есть ли способ вызвать метод?
- 23. Использование общего пользовательского типа Lisp в defmethod
- 24. Есть ли лучший способ создать экземпляр общего поля в классе?
- 25. Highslide JS - Есть ли способ расширить изображение общего центра?
- 26. Есть ли способ получить данные из общего документа Google Sheet?
- 27. Есть ли способ указать возможные типы для общего класса?
- 28. Есть ли лучший способ найти самого низкого общего предка?
- 29. Есть ли способ справиться с неизвестными типами общего типа?
- 30. Есть ли способ предотвратить разрешение «наилучшего общего типа» в TypeScript?
Отлично, спасибо! Есть ли способ разрешить метод, возвращаемый fboundp, чтобы определить, каким должен быть класс ожидаемого вызывающего? – Mike2012
'fboundp' возвращает обобщенное логическое значение, указывающее, существует ли функция этого имени (возможно, я неверно истолковал намерение вашего вопроса). «Класс ожидаемого абонента» не имеет значения; Наверное, вы имеете в виду специалиста для этого метода. См. Ответ Райнера для этого (с помощью 'find-method'). – Svante