Matlab Calling Java 8 `java.time` Class



以下是中的示例

  • Matlab R2018a,Windows 8 64位
  • MATLAB_JAVA环境变量:如果未使用,或者设置为几分钟前刚下载的C:Program FilesJavajre1.8.0_251
  • CCD_ 3:CCD_
  • computer('arch'):win64

我尝试运行这个Java 8java.time类调用,发现一个错误:

>> localdate=java.time.LocalDate.parse('2020-04-19')
No method 'parse' with matching signature found for class 'java.time.LocalDate'.

像这样的简单调用,有效:

>> java.time.LocalDate.now
2020-04-19 [1x1 LocalDate]

我做错了什么?

java.time.LocalDate.parse方法的签名被定义为采用CharSequence,而不是String

public static LocalDate parse(CharSequence text)

Matlab将自动将Matlab的charstring阵列转换为java.lang.String,而不是CharSequence。因此,您必须通过自己调用字符串上的java.lang.String(...)来提供显式转换:

>> localdate=java.time.LocalDate.parse('2020-04-19')
No method 'parse' with matching signature found for class 'java.time.LocalDate'. 
>> localdate=java.time.LocalDate.parse(java.lang.String('2020-04-19'))
localdate =
2020-04-19
>> 

最新更新