2014-01-02 4 views
0

Существует ли общий тип, похожий на Object на Java, который позволяет устанавливать значения разных типов?Существует ли общий тип функций аннотации UIMA?

<typeDescription> 
    <name>com.example.Annotation</name> 
    <description></description> 
    <supertypeName>uima.tcas.Annotation</supertypeName> 
    <features> 
     <featureDescription> 
      <name>exampleFeature</name> 
      <description>An example feature</description> 
      <rangeTypeName>uima.cas.Generic</rangeTypeName> 
     </featureDescription> 
    </features> 
</typeDescription> 

Я попытался положить следующее <rangeTypeName>:

  • java.lang.Object и объекта Это не работает, и я получаю следующее сообщение при попытке сгенерировать код с использованием JCasGen:

    JCasGen Предупреждение: ** Инициализация ресурсов Ошибка при использовании экземпляров ting система типа CAS. Постоянно, но может генерировать неправильно. Вызывается «Объектом неопределенного типа», на который ссылается функция «exampleFeature», объявленная по типу «com.example.Annotation».

  • uima.cas.TOP Это генерирует код, но затем выдает ошибку, когда я пытаюсь вызвать метод setExampleField(), передавая ему int или String, поскольку он не может преобразовать их в ТОП типа.

ответ

3

The uima.cas.TOP является Объект -эквивалентно тип UIMA. Но это немного отличается от того, что вы ожидаете. UIMA работает с двумя концепциями: 1) FeatureStructure, 2) примитивные типы (int, boolean и т. Д. И String!). Если вы установите диапазон функций в TOP, он может принимать любую структуру объектов (т. Е. Что-либо, что наследуется от TOP), но не любой из примитивных типов - здесь нет автоматического бокса. Если вы установите диапазон в примитивный тип, тогда он примет этот тип.

Обходной способ может заключаться в определении пользовательских типов, например. FSInt, FSString, FSBoolean, которые наследуют от TOP и которые будут иметь функцию «value» соответствующего типа (int, String, boolean). Затем вы можете установить значение в этой FS и назначить его функции с диапазоном TOP.

Примечание: В настоящее время я являюсь участником проекта Apache UIMA.

Смежные вопросы