Получение помощи по внутренним компонентам com.mathworks MATLAB - PullRequest
5 голосов
/ 06 апреля 2010

Можно получить доступ к битам внутреннего Java-кода MATLAB, чтобы программно изменить сам MATLAB. Например, вы можете программно открыть документ в редакторе, используя

editorServices = com.mathworks.mlservices.MLEditorServices;
editorServices.newDocument()  %older versions of MATLAB seem to use new()

Вы можете увидеть сигнатуры методов (но не то, что они делают), используя methodsview.

methodsview(com.mathworks.mlservices.MLEditorServices)

У меня есть несколько связанных вопросов об использовании этих методов Java.

Во-первых, есть ли документация по этим вещам (из Mathworks или иным образом)?

Во-вторых, как вы узнаете, какие методы доступны? Те, с которыми я сталкивался, по-видимому, содержатся в файлах JAR в папке matlabroot \ java \ jar, но я не уверен, что лучший способ проверить файл JAR.

В-третьих, существуют ли функции для проверки классов, кроме methodsview?

Наконец, есть ли действительно полезные методы, которые кто-нибудь нашел?

Ответы [ 4 ]

14 голосов
/ 06 апреля 2010

Нет официальной документации и поддержки для этих классов. Более того, эти классы и внутренние методы представляют собой внутреннюю реализацию, которая может измениться без уведомления в любом будущем выпуске Matlab. При этом вы можете использовать мои утилиты uiinspect и checkClass для исследования внутренних методов, свойств и статических полей. Эти утилиты используют отражение Java для своей работы, что также делается с помощью встроенной функции examplesview (хотя я считаю, что мои утилиты гораздо более мощные). В этом отношении я считаю, что мы не пересекаем линию реинжиниринга, которая может нарушать лицензию Matlab.

Если вы ищете документацию, то мой UndocumentedMatlab.com веб-сайт имеет множество соответствующих ресурсов, и регулярно добавляются другие, поэтому следите за обновлениями.

Я также работаю над книгой, которая представит очень подробный обзор всех этих внутренних классов, среди прочих недокументированных вещей - я надеюсь, что в этом году новости будут опубликованы.

1 голос
/ 06 апреля 2010

Я поклонник затмения. Если вы используете это как IDE, банку можно будет импортировать в один из ваших проектов, и вы можете проверить методы там.

1 голос
/ 06 апреля 2010

Чтобы узнать больше о Java-объектах, я использую uiinspect .

Единственное, что я знаю, где документируется скрытый Java-материал Matlab - это Недокументированный Matlab Яир Альтман На его сайте перечислено множество очень полезных трюков. Например, мне очень удобно использовать Java для форматирования текста в списках.

EDIT

Человек говорил. Послушайте его, так как я не думаю, что кто-то кроме MathWorks знает больше о внутреннем Java-коде Matlab.

0 голосов
/ 06 апреля 2010

Недокументированный Matlab - отличное место, чтобы начать искать.

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