gpt4 book ai didi

java - 在增强开关的情况下什么也不做

转载 作者:行者123 更新时间:2023-12-05 01:23:58 28 4
gpt4 key购买 nike

我有以下增强型开关盒

@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
}

如果 authMethodSKIP 我只是想让代码什么都不做。我不想删除案例。

我知道,我可以通过其他不同的方式解决这个问题,但我很好奇这是否适用于增强型开关。

我也知道,我可以删除 SKIP 案例。这根本不是我想要的,因为我想说清楚,SKIP 在这种情况下什么都不做。

这是我试过的

case SKIP -> {};
case SKIP -> ();

在增强型switch语句的情况下,我怎么能什么都不做呢?

最佳答案

这太近了!

case SKIP -> {};

你刚刚多了一个分号!删除它并编译!

case SKIP -> {}

请参阅 Java Language SpecificationSwitchRule 的语法:

SwitchStatement:
switch ( Expression ) SwitchBlock

SwitchBlock:
{ SwitchRule {SwitchRule} }
{ {SwitchBlockStatementGroup} {SwitchLabel :} }

SwitchRule:
SwitchLabel -> Expression ;
SwitchLabel -> Block
SwitchLabel -> ThrowStatement

请注意,如果它是一个表达式,就像您的 add 调用一样,您需要在它后面加一个分号。如果您使用 block ,例如 {},则不应添加分号。

关于java - 在增强开关的情况下什么也不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71786627/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com