Получение справки на com.mathworks внутренностях MATLAB

Возможно получить доступ к битам внутреннего кода 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?

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

5
задан Sathyajith Bhat 19 June 2012 в 16:04
поделиться

4 ответа

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

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

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

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

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

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

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

1
ответ дан 18 December 2019 в 10:43
поделиться

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

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

РЕДАКТИРОВАТЬ

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

1
ответ дан 18 December 2019 в 10:43
поделиться
Другие вопросы по тегам:

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