我有下面这个改进的switch case语句:
@Override
public MultivaluedMap<String, String> update(MultivaluedMap<String, String> incomingHeaders,
MultivaluedMap<String, String> clientOutgoingHeaders) {
switch (authMethod) {
case BASIC -> clientOutgoingHeaders.add("Authorization", basicAuth("admin", "admin"));
case BEARER -> clientOutgoingHeaders.add("Authorization", "Bearer" + " " + getAccessTokenFromKeycloak());
case SKIP -> System.out.println(); // How can I remove this?
}
return clientOutgoingHeaders;
}
其中authMethod
是一个
enum AuthMethod{
BASIC,
BEARER,
SKIP
}
如果
authMethod
是SKIP
,我只希望代码什么也不做。我不想移除这个case。我知道我可以以其他不同的方式解决这个问题,但我很好奇是否可以通过增强版的switch来实现。
我也知道我可以删除
SKIP
case,但这不是我想要的,因为我想明确表明在该情况下SKIP
不会执行任何操作。这就是我尝试过的。
case SKIP -> {};
case SKIP -> ();
在增强型的switch语句中,如何什么都不做?
switch
语句中没有相应的case
,那么它就什么也不做已经是显而易见的了。你所描述的情况类似于在if
语句上放置一个空的else
子句;没有人会提倡这样做。 - Robert Harveycase SKIP -> {};
时发生了什么? - Robert Harvey