Sam*_*Sam 7 java generics matlab
是否可以在Matlab中构造参数化类?例如在Java中,我可以说ArrayList<String> myList = new ArrayList<String>().我试过了myList = java.util.ArrayList<String>(),但这只是一个错误,说"意外的括号或括号".我真的想使用我自己的参数化类,但如果我能得到这个的语法,它就足够了.
您无法在Matlab中实例化参数化的Java类.这是因为Matlab是一种解释性语言.所以,在你的例子中,当你尝试
myList = java.util.ArrayList<String>()
Run Code Online (Sandbox Code Playgroud)
此代码由Matlab(以及编译的Java代码)立即解释和运行.但是因为Java具有Type Erasure,myList的所有类型信息都会立即丢失.这意味着在Matlab的语境中,语法类型参数毫无意义 - 所以它们在语法上是无效的.
Kurt是对的,但是解决方法是定义你自己的没有参数化的java类.public class MyList extends ArrayList<String> { }.然后在matlab中你可以编写myList = MyList(),你会得到几乎所有相同的方法签名ArrayList<String>.