Matlab Calling Java 8 `java .time` Класс - PullRequest
1 голос
/ 19 апреля 2020

После этих примеров в:

  • Matlab R2018a, Windows 8 64 бит,
  • MATLAB_JAVA переменная окружения: обе, если не используются, или если установлено значение C:\Program Files\Java\jre1.8.0_251 только что загруженные минуты a go,
  • version -java: Java 1.8.0_251-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode,
  • computer('arch'): win64

Я попытался выполнить этот Java 8 java.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]

Что я делаешь неправильно?

1 Ответ

3 голосов
/ 20 апреля 2020

Подпись метода java.time.LocalDate.parse определена как CharSequence, а не String.

public static LocalDate parse(CharSequence text)

Matlab автоматически преобразует Matlab char и string массивов до 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
>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...