在增强开关的情况下什么也不做
Do nothing in a case of an enhanced switch
我有以下增强型开关盒
@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
我只是想让代码什么都不做。我不想删除案例。
我知道,我可以通过其他不同的方式解决这个问题,但我很好奇这是否适用于增强型开关。
我也知道,我可以删除 SKIP
案例。这根本不是我想要的,因为我想说清楚,在那种情况下,SKIP 什么都不做。
这是我试过的
case SKIP -> {};
case SKIP -> ();
在增强型switch语句的情况下,如何什么都不做?
这太接近了!
case SKIP -> {};
你多了一个分号!删除它并编译!
case SKIP -> {}
请参阅 Java Language Specification 中 SwitchRule
的语法:
SwitchStatement:
switch ( Expression ) SwitchBlock
SwitchBlock:
{ SwitchRule {SwitchRule} }
{ {SwitchBlockStatementGroup} {SwitchLabel :} }
SwitchRule:
SwitchLabel -> Expression ;
SwitchLabel -> Block
SwitchLabel -> ThrowStatement
请注意,如果它是一个表达式,就像您的 add
调用一样,您需要在它后面加一个分号。如果使用块,如 {}
,则不应添加分号。
我有以下增强型开关盒
@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
我只是想让代码什么都不做。我不想删除案例。
我知道,我可以通过其他不同的方式解决这个问题,但我很好奇这是否适用于增强型开关。
我也知道,我可以删除 SKIP
案例。这根本不是我想要的,因为我想说清楚,在那种情况下,SKIP 什么都不做。
这是我试过的
case SKIP -> {};
case SKIP -> ();
在增强型switch语句的情况下,如何什么都不做?
这太接近了!
case SKIP -> {};
你多了一个分号!删除它并编译!
case SKIP -> {}
请参阅 Java Language Specification 中 SwitchRule
的语法:
SwitchStatement:
switch ( Expression ) SwitchBlock
SwitchBlock:
{ SwitchRule {SwitchRule} }
{ {SwitchBlockStatementGroup} {SwitchLabel :} }
SwitchRule:
SwitchLabel -> Expression ;
SwitchLabel -> Block
SwitchLabel -> ThrowStatement
请注意,如果它是一个表达式,就像您的 add
调用一样,您需要在它后面加一个分号。如果使用块,如 {}
,则不应添加分号。