Cel*_*lso 4 matlab matlab-class
我看了一遍,但没有看到[a b] = methods(classname)
记录.我的意思是,记录单变量输出,但不记录双变量输出.我在MATLAB或未记录的matlab中看到没有文档,甚至在这里.也许我错过了?
如果我把它用MATLAB类,char
例如
[a b] = methods(char);
Run Code Online (Sandbox Code Playgroud)
然后a
是char的方法列表,b
是[]
但...
对于java类,b
需要一些有用的值.假设这javaClass
是一个java类或java类名.
通常情况下,我会打电话a = method(javaClass)
或a = method(javaClass,'-full')
.但是,我注意到我也可以打电话
[a b] = method(javaClass)
当我做:
a
是一个包含所有类方法名称的唯一列表的单元格.(如预期的那样)b
是一个N x 6个字符串单元格,每列代表:
'static'
如果是静态的,[]
否则()
[]
例:
[a b] = method(java.lang.Integer);
Run Code Online (Sandbox Code Playgroud)
然后,a
是<32x1细胞>含有简单的名称,诸如'Integer'
,'bitCount'
等
但是,b
<43x6单元格>包含每个函数的每个变体.例如,valueOf函数之一将显示
COL VALUE
1. static
2. java.lang.Integer
3. valueOf
4. java.lang.Integer.valueOf
5. (java.lang.String)
6. throws java.lang.NumberFormatException`
Run Code Online (Sandbox Code Playgroud)
主要问题:这完全不安全吗?因为它没有证件,我会这么认为; 但是它为我提供了一些内置的功能,不用复制就可以了.解析的解决方法并不可恶,但此功能已经存在.
这是从哪里来的?也就是说,这实际上是来自MATLAB函数,还是它正在使用某些Java函数?
有没有人用它?或者(如在主要问题中)应该避免吗?
有关于此的文件吗?除了这篇文章,我的意思是.我的意思是,当然,它似乎是一个直接的功能......对于任何重要的人来说,这是否足够有趣?
我在MATLAB 2011b上,这个功能在MATLAB(2013a)的更高版本中是否仍然存在?
对于MATLAB自己的类(classdef
样式),您可以使用元数据系统来获取类似的信息:
mc = ?timer
mc.MethodList
Run Code Online (Sandbox Code Playgroud)
methods
上面显示的用法似乎对Java类和对象特别有用.检查methodsview
内部使用两个输出的函数的源代码methods
.
edit methodsview
Run Code Online (Sandbox Code Playgroud)