2015-07-21 3 views
0

У меня возникла проблема с реализацией класса ArrayCoreMap: у меня возникли проблемы с установкой ключа со значением. Это то, что у меня есть, но компилятор показывает ошибку:Набор ключей для класса ArrayCoreMap

CoreMap sentence = new ArrayCoreMap(); 
sentence.set("Dog", "Thomas"); 

Я прочитал документацию API и это то, что говорит: public <VALUE> VALUE set(java.lang.Class<? extends TypesafeMap.Key<VALUE>> key, VALUE value)

Так что мой вопрос, что я должен делать для исправления ошибки. Я не знаю, как использовать TypesafeMap.Key<VALUE>, чтобы сделать свой ключ. API говорит следующее: «Классы, которые реализуют Key, являются самими ключами, а не экземплярами этих классов». Я не знаю, что означает API. Что мне нужно сделать, чтобы исправить эту ошибку?

+1

Что ошибка компилятор дает вам? –

+0

Его высказывание для переименования метода set()? Я думаю, что это дает мне эту ошибку, потому что я не вношу правильные параметры метода. – user5139637

+0

Качество вопроса напрямую влияет на качество ответов. Предоставьте точную ошибку (ы) компилятора, которую вы получаете, и, если возможно, ссылку на API, который вы пытаетесь использовать. –

ответ

0

Метод set должен иметь свой первый аргумент для типа, который расширяет TypesafeMap.Key<VALUE>, а ваш первый аргумент - String. Посмотрите here, чтобы просмотреть список допустимых типов. Ключ может, например, быть CoreAnnotations.LemmaAnnotation (реализует TypesafeMap.Key<String>).

+0

Как я могу сделать предложение с ArrayCoreMap? Я пытаюсь использовать класс RelationMention, который будет использоваться в классе BasicRelationExtractor в конце дня. Для класса RelationMention требуется «предложение CoreMap», но я не знаю, как сделать предложение с кучей ключей и значений? Разве я не могу просто поставить строку в качестве предложения? – user5139637

+0

Спасибо за ваш ответ. Он очищает некоторые вещи в моей голове – user5139637

+0

@ user5139637 Добро пожаловать. Ваш вопрос о создании предложения с использованием 'ArrayCoreMap' должен быть отдельным вопросом, а не комментарием. –

0

Это подпись set метода set(Class<KEY>, VALUE) где

<KEY extends TypesafeMap.Key<CoreMap,VALUEBASE>> 

Если вы используете ниже код будет успешно скомпилируется:

sentence.set(CoreAnnotations.SectionAnnotation.class, "Thomas"); 
Смежные вопросы