小编Bal*_*sök的帖子

如何更改 Checkstyle 中注释数组初始化子项允许的缩进级别?

在我从事的一个项目中,我们通过maven-checkstyle-plugin. 我们还使用springdoc-openapi-ui,因此在控制器上我们使用@ApiReponses注释。它的语法相当复杂,但效果很好,所以我在控制器上写了这样的东西:

@ApiResponses(value = {
        @ApiResponse(description = "foo",
                content = {
                        @Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
                                schema = @Schema(implementation = UgyTableDataResponse.class)),
                        @Content(mediaType = MediaType.APPLICATION_XML_VALUE,
                                schema = @Schema(implementation = UgyTableDataResponse.class))
                })
})
Run Code Online (Sandbox Code Playgroud)

然而,@ApiResponse@Content注释均由 Checkstyle 标记为Checkstyle: 'annotation array iteration' child 的缩进级别为 12,预期级别应为 8。

我想更改 Checkstyle 设置,以便可以将注释保持在这种易于阅读的格式中。

我的缩进设置checkstyle.xml是:

<module name="Indentation">
        <property name="basicOffset" value="4"/>
        <property name="braceAdjustment" value="0"/>
        <property name="caseIndent" value="4"/>
        <property name="throwsIndent" value="4"/>
        <property name="lineWrappingIndentation" value="4"/>
        <property name="arrayInitIndent" value="4"/>
    </module>
Run Code Online (Sandbox Code Playgroud)

POM中的插件依赖是:

@ApiResponses(value = …
Run Code Online (Sandbox Code Playgroud)

java annotations indentation checkstyle maven

6
推荐指数
1
解决办法
1789
查看次数

为什么在此示例中有“ for(auto&x:v)”而不是“ for(auto x:&v)”?

我在Bjarne Stroustrup的The C ++编程语言(第4版)中找到了此代码。

在此示例中,据我所知,我们递增x而不将v的值复制到x中。我的问题是,为什么我们引用x而不引用v?

我试图通过将问题分解并写到纸上来理解问题,简化内存中会发生什么,但我不明白。

void increment()
{
   int v[]={0,1,2,3,4,5,6,7,8,9};

   for(auto& x : v)
      {
        ++x;
      }
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers reference

5
推荐指数
1
解决办法
137
查看次数

即使 Swagger 添加为 Maven 依赖项,也无法导入 @ApiParam 或 @ApiModelProperty 注释

我正在开发一个项目,我们用 Swagger 记录后端的 API。我想为 Swagger 使用基于注释的配置。对于我的控制器类,使用@Tag,@Operation@ApiResponses工作得很好,可以使用以下语句导入它们:

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试将@ApiParam或添加@ApiModel到我的代码中,我无法以任何方式导入它们。

在我的中POM.xml,我添加了 Swagger 作为以下依赖项:

<!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations -->
<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-annotations</artifactId>
    <version>2.1.11</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?我尝试遵循这篇 Baeldung 文章和示例代码,但是我无法让它工作。谢谢您的帮助!

java annotations importerror maven swagger

5
推荐指数
1
解决办法
8946
查看次数

x86_32 虚拟 8086 和实模式是否支持扩展通用和专用寄存器?

是否可以在 x86_32 虚拟 8086 或实模式下使用EAX, EBX,... ?我知道,这些寄存器具有32位(和,即当然它们的非扩展部分是16个比特宽)的尺寸,但并不在类解释的,在该模式中可以使用它们,只有FSGS是仅在保护模式下允许。

x86 assembly real-mode cpu-registers x86-16

3
推荐指数
1
解决办法
82
查看次数

对两个案例标签使用相同的值与对单个案例使用多个案例标签有什么区别?

我正在阅读Bjarne的《使用C ++的编程和原理》

我遇到了有关switch的以下详细信息:

您可以为一个案例使用多个案例标签。

两个案例标签不能使用相同的值。

我想我很清楚2.一个。它应该意味着:

switch (a) {

  case 'c':{//some code} 

  case 'c':{//some (different) code} 
} 
Run Code Online (Sandbox Code Playgroud)

合法的。

但是,我不确定第一个是否意味着,如果案例1和案例2等不同,那么我可以有任意数量的案例(当然,它们是常量表达式)还是意味着我可以有任意多个案例,但是其中一些案例是相同的

我发现了与此类似的问题: C开关情况下的多个标签值

我的解释正确吗?如果不是,我想念或弄错了什么?

c++ case switch-statement

2
推荐指数
1
解决办法
105
查看次数

为什么会为if(age!&lt;= 0 || age!&gt; = 110)引发编译时错误?

我是一名学生,当时我正在编写一个非常简单的控制台应用程序,但是以下行出现了编译时错误:

我尝试了以下操作,但只出现了更多错误:

if((age!<=0) || (age!>=110)){/*Some code*/}
Run Code Online (Sandbox Code Playgroud)
if(age!<=0 || age!>=110){/*Some code*/}   
Run Code Online (Sandbox Code Playgroud)

对于第一个代码,构建消息如下:

|| ===构建:在Drill中调试(编译器:GNU GCC编译器)=== |

使用C ++ \ Code and Notes \ 3 \ Drill \ main.cpp的原理和实践||在函数'int main()'中:|

使用C ++ \ Code and Notes \ 3 \ Drill \ main.cpp | 41 |错误的原则和实践:预期在'!'之前的')' 令牌|

|| ===构建失败:1个错误,0个警告(0分钟,0秒)=== |

对于第二个代码,构建消息如下:

|| ===构建:在Drill中调试(编译器:GNU GCC编译器)=== |

使用C ++ \ Code and Notes \ 3 \ Drill \ main.cpp的原理和实践||在>函数'int main()'中:|

使用C ++ \ Code and Notes \ 3 \ Drill \ …

c++ if-statement compare

1
推荐指数
1
解决办法
124
查看次数

在这种情况下,为什么使用范围for循环会比使用常规for循环产生不同的输出?

我想实现的目标

我打算读取输入,然后使用cout按输入顺序写出数字,并用“,”分隔,最后一个数字除外,后者以“ \ n”结尾。如果未在其中插入整数/浮点字符,则读取结束形式为cin

工作代码

#include <iostream>
#include <vector>

int main()
{
    std::cout << "Please enter double values. Enter an alphabetic character to stop reading in values.\n";

    std::vector<double> val;
    for (auto cur_val{ 0 }; std::cin >> cur_val;) {
        val.push_back(cur_val);
    }

    std::cout<<"Your values were:";for(auto i{0};i<val.size();i++)
    {
        if(i!=val.size() && i!=val.size()-1)std::cout<<val[i]<<", ";
        if(i==val.size()-1)std::cout<<val[i]<<'\n';
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码的输出为3,4,5'\ n',这很好。

代码无法正常工作

#include <iostream>
#include <vector>

int main()
{
    std::cout << "Please enter double values. Enter an alphabetic character to …
Run Code Online (Sandbox Code Playgroud)

c++ loops for-loop vector output

1
推荐指数
1
解决办法
88
查看次数