无法识别媒体类型的导入

时间:2014-05-14 13:59:53

标签: java restful-architecture

我正在尝试创建一个RESTful Web服务,我添加了以下jar文件,但是当我添加import javax.ws.rs.core.MediaType;时,它用红线加下划线,它表示 "import javax.ws.rs.core.MediaType;"与另一个声明相撞。我试图用ctrl + shift + O组织我的导入,它会自动删除上面的导入。 结果是无法识别MediaType.TEXT_PLAIN。

enter image description here

2 个答案:

答案 0 :(得分:4)

导入语句是为了方便,因此您在编写代码时无需完全限定所有类型。

如果你被允许导入这两个类,那么当你试图使用其中一个时,编译器就不会知道你的意思。

对于像这样的名称冲突,您需要完全限定其中一种类型,以便编译器能够告诉java.awt.PageAttributes.MediaTypejavax.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!";
    }
}

答案 1 :(得分:1)

您已导入两次。对于核心MediaType,您需要导入import javax.ws.rs.core.MediaType;对于页面属性,您必须导入import java.awt.PageAttributes.MediaType;

根据您的要求选择合适的一种。