Возможно получить доступ к битам внутреннего кода 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
?
Наконец, есть ли какие-либо действительно полезные методы, которые кто-либо нашел?
Для этих классов нет официальной документации и поддержки. Более того, эти классы и внутренние методы представляют собой внутреннюю реализацию, которая может быть изменена без уведомления в любой будущей версии Matlab. При этом вы можете использовать мои утилиты uiinspect и checkClass для исследования внутренних методов, свойств и статических полей. Эти утилиты используют отражение Java для выполнения своей работы, что также делает встроенная функция methodview (хотя я считаю, что мои утилиты намного мощнее). В этом отношении я считаю, что мы не переходим черту реверс-инжиниринга, которая может нарушить лицензию Matlab.
Если вам нужна документация, то мой веб-сайт UndocumentedMatlab.com содержит множество соответствующих ресурсов, и регулярно добавляются новые, так что следите за обновлениями.
Я также работаю над книгой, в которой будет представлен очень подробный обзор всех этих внутренних классов, среди прочего недокументированного материала - я надеюсь, что позже в этом году появятся новости о публикациях.
Недокументированный Matlab - отличное место для начала поиска.
Я фанат затмений. Если вы используете это как свою IDE, банку можно импортировать в один из ваших проектов, и вы можете проверить там методы.
Чтобы узнать больше о java-объектах, я использую uiinspect .
Единственное известное мне место, где документируется скрытый материал Java в Matlab, - это Недокументированный Matlab , автор Яир Альтман . На его сайте есть множество очень полезных трюков. Например, мне очень пригодилась возможность использовать Java для форматирования текста в списках.
РЕДАКТИРОВАТЬ
Человек сказал. Послушайте его, так как я не думаю, что есть кто-то за пределами MathWorks, кто знает больше о внутреннем Java-коде Matlab.