我是一个使用Dropwizard的新手,并且正在按照网站上的教程创建hello world应用程序。任何人都可以向我解释如何使用NonEmptyStringParam打印类似“你好,陌生人!”的内容。如果没有提供参数给sayHello?
以下是我的资源代码,它输出:
{"id":1,"content":"Hello, Optional[Stranger]!"}
代替
{"id":1,"content":"Hello, Stranger!"}
public class HelloWorldResource {
private final String template;
private final NonEmptyStringParam defaultName;
private final AtomicLong counter;
public HelloWorldResource(String template, String defaultName) {
this.template = template;
this.defaultName = new NonEmptyStringParam(defaultName);
this.counter = new AtomicLong();
}
@GET
@Timed
public Saying sayHello(@QueryParam("name") Optional<NonEmptyStringParam> name) {
final String value = String.format(template, name.orElse(defaultName));
return new Saying(counter.incrementAndGet(), value);
}
}
谢谢!
答案 0 :(得分:1)
您不应该将NonEmptyStringParam
用Optional<>
包装。请参见testcase from the Dropwizard source。
还要在构造函数方法中用defaultName
除去NonEmptyStringParam
的换行。