【问题标题】:what is the usage of Set<Class<?>> resources = new java.util.HashSet<>();Set<Class<?>> resources = new java.util.HashSet<>(); 的用法是什么?
【发布时间】:2018-06-22 06:01:31
【问题描述】:

rest api中这行代码有什么用 Set&lt;Class&lt;?&gt;&gt; resources = new java.util.HashSet&lt;&gt;();

@ApplicationPath("/service")
public class ApplicationConfig extends Application {
@Override
public Set<Class<?>> getClasses() {

    Set<Class<?>> resources = new java.util.HashSet<>();

    System.out.println("REST configuration starting: getClasses()");            

    //features
    //this will register Jackson JSON providers
    resources.add(org.glassfish.jersey.jackson.JacksonFeature.class);



    //more code.....
}

【问题讨论】:

  • 它将resources初始化为一个新的HashSet。你是问这个还是别的什么?
  • “用途是什么?”是什么意思?你的意思是“目的是什么?”或“我该如何使用?”
  • 是的,我该如何使用?

标签: java jakarta-ee jax-rs java-ee-7


【解决方案1】:

Application 类定义 JAX-RS 应用程序的组件。 Application 的子类可以覆盖 getClasses() 以注册一组应用程序使用的根资源、提供者和要素类。

最简单的实现如下:

@ApplicationPath("api")
public SampleApplication extends Application {

}

在上面的示例中,没有注册资源类或提供程序,因此 JAX-RS 运行时将扫描类路径以查找带有 @Path 和 @Provider 注释的 JAX-RS 组件,并将自动注册它们。

详情请参阅answer。


Set&lt;Class&lt;?&gt;&gt; 表示Set 包含未知类型的Classes(由?wildcard 表示)。在 Oracle 的 The Java Tutorials 中,您会找到关于 generics 的完整部分。我鼓励你看看。

【讨论】:

  • 好酷。谢谢你的支持。但是这部分有点混乱:Set&lt;Class&lt;?&gt;&gt;你能解释一下吗?
  • @DhanushkaSamarasinghe Set&lt;Class&lt;?&gt;&gt; 表示Set 可以容纳未知类型的Classes。请参阅 Java 教程的 generics 部分。
  • 非常感谢。感谢您的帮助! :)
猜你喜欢
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多