gpt4 book ai didi

java - 方法有8个参数,大于7个授权

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:39 24 4
gpt4 key购买 nike

当我使用 sonar lint 扫描代码时,以下代码将错误显示为“方法有 8 个参数,大于 7 个已授权”

@PutMapping("/something")
public List<SomeList> updateSomeThing(@PathVariable final SomeCode code,
@PathVariable final SomeId id,
@PathVariable final String testId,
@PathVariable final String itemId,
@RequestBody final List<Test> someList,
@RequestHeader("test") final String testHeader,
final HttpServletRequest request,
final SomeHeaders someHeaders)

注意:这是一个 Controller 方法,我们不能跳过任何参数

仅供引用:Eclipse 将快速修复显示为 squid:S00107

有人知道如何解决这个错误吗?

最佳答案

这里有两件事需要考虑。

  1. 您可以在 Sonar 中调整此规则并增加授权参数的数量。假设将其设为 10 而不是默认值 (?) 7。

UPD:以下建议基于旧问题版本。它可能不再适用于新的问题上下文。

  1. 但通常您应该重新考虑您的方法接口(interface)。有很多参数意味着你的架构和 Single responsibility principle 可能有问题。可能坏了。

在您的特定示例中,我希望您可以拥有一个聚合类 Order:

public class Order {
private CountryCode countryCode;
private String orderId;
private User user;
private String orderId;
private String item;
private List<Person> persons;
private ShippingAddress address;
private PaymentMethod payment;
private Product product;
// ...
}

管理而不是处理许多参数更合乎逻辑。然后您的问题将自动解决:

@GetMapping
public void updateSomething(Order order) { ... }

关于java - 方法有8个参数,大于7个授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49535099/

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