Не распознан импорт типа носителя

Я пытаюсь создать веб-сервисы RESTful, я добавил следующие файлы jar, но когда я добавляю import javax.ws.rs.core.MediaType;, он подчеркивается красной линией и говорит, что "import javax.ws.rs.core.MediaType;" сталкивается с другим оператором. Я попытался организовать свой импорт с помощью ctrl+shift+O, и он автоматически удаляет указанный выше импорт. В результате MediaType.TEXT_PLAIN не распознается.

введите здесь описание изображения


person user3358377    schedule 14.05.2014    source источник
comment
как вы можете видеть в своем коде, вы импортируете 1 класс с тем же именем. как вы ожидаете, что компилятор узнает, что есть что, когда вы ссылаетесь на любой из них?   -  person njzk2    schedule 14.05.2014
comment
Я думаю, что в jar-файле jersey-server есть реализация для MediaType и любых классов javax.ws.rs, которые вам нужны, поэтому я бы удалил этот jar-файл javax.ws.rs-api.   -  person Ronald91    schedule 14.05.2014


Ответы (2)


Операторы импорта существуют для удобства, так что вам не нужно полностью определять все ваши типы при написании кода.

Если бы вам было разрешено импортировать оба класса, компилятор не знал бы, какой из них вы имели в виду, когда пытались использовать один или другой.

В случае подобного конфликта имен вам необходимо полностью определить один из типов, чтобы компилятор мог отличить java.awt.PageAttributes.MediaType от javax.ws.rs.core.MediaType:

import java.awt.PageAttributes.MediaType;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
//import javax.ws.rs.core.MediaType; // don't need this anymore

@Path("/hello")
public class Hello {
    @GET
    @Produces(javax.ws.rs.core.MediaType.TEXT_PLAIN) // fully qualify MediaType
    public String sayPlainTextHello() {
        return "Hello, World!";
    }
}
person azurefrog    schedule 14.05.2014
comment
Отличная техника братан. - person Abdul Gaffar; 07.04.2017

Вы импортировали его дважды. Для основного MediaType вам необходимо импортировать import javax.ws.rs.core.MediaType; а для атрибутов страницы вам необходимо импортировать import java.awt.PageAttributes.MediaType;

Выберите правильный в соответствии с вашими требованиями.

person Mohan    schedule 02.03.2016