Назначение базового типа, такого как строка, для типа any
абсолютно допустимо.Проблема в другом месте.
Так как вы не передаете строку в форме, используемой для файлов событий, она выдает ошибку.Расшифровка сообщения об ошибке становится действительно простой, если вы посмотрите на один пример, где используется метод parseType
.Это дает некоторый намек на то, почему он действительно ищет в аргументе открывающую цитату .
Ваша проблема проста:
package com.apama.test;
event Evt{}
monitor Foo {
action onload() {
Evt e1;
// handleResponse(any.parseType("string", "World!")); // #1 Invalid argument. Doesn't work
handleResponse(any.parseType("com.apama.test.Evt", "com.apama.test.Evt()")); // #2
handleResponse("World!"); // #3
}
action handleResponse(any response){
log "Hello " + response.toString() ;
}
}
print:
com.apama.test.Foo [1] Hello any(com.apama.test.Evt,com.apama.test.Evt())
com.apama.test.Foo [1] Hello any(string,"World!")
при раскомментировании #1
выдает ошибку, как показано ниже:
ParseException - Error in parseType() method: Unable to parse string: missing opening quote
Далее, если вы передаете правильно сформированное, но не существующее событие parseType
метод, он выдаст ошибку о том, что тип не может быть найден.
ParseException - Error in parseType() method: Unable to find type 'com.apama.test.Evt2'