2010-04-06 3 views
5

Доступ к битам внутреннего Java-кода MATLAB позволяет программно изменять MATLAB. Например, вы можете программно открыть документ в редакторе с помощьюПолучение справки о внутренних функциях MATLAB com.mathworks

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?

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

ответ

14

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

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

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

1

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

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

EDIT

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

1

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

Смежные вопросы