小编Sri*_*har的帖子

openapi 3.0 有效的最小值和最大值

我的 openapi 合约中有以下模式定义来表示commission amount

commissionAmount:
  type: number
  minimum: -99999.99
  maximum: 99999.99
Run Code Online (Sandbox Code Playgroud)

生成的代码:

@Valid
@DecimalMin("-99999.99") @DecimalMax("99999.99") 
public BigDecimal getCommissionAmount() {
  return commAmt;
}
Run Code Online (Sandbox Code Playgroud)

生成的代码很好并且符合预期。我只是想知道这些-99999.99以及和99999.99的有效值。minimummaximum

提出这个问题的原因是它没有检查小数部分的限制。例如,我期望12345.678is invalid ,12345.67is valid 。但它将两者标记为有效。

I read@Digits用于检查整数和小数部分的位数限制。我如何告诉也openapi-generator-maven-plugin进行注释?Digits

预期生成的代码:

@Valid
@Digits(integer = 5, fraction = 2)
@DecimalMin("-99999.99") @DecimalMax("99999.99") 
public BigDecimal getCommissionAmount() {
  return commAmt;
}
Run Code Online (Sandbox Code Playgroud)

java codegen openapi openapi-generator

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

Mapstruct 将布尔值映射到字符串

我的模型类中有几个Boolean字段(源)。我的 DTO 类中的目标字段是String. 我需要映射trueasYfalseas N。有超过 20 个Boolean字段,现在我正在使用 20 多个@Mapping带有expression选项的注释,这是开销。一定有一个我不知道的简单方法或解决方案。任何人都可以帮助简化这个吗?

我正在使用mapstruct版本1.2.0.Final

源码.java

class Source{
  private Boolean isNew;
  private Boolean anyRestriction;
  // several Boolean fields
}
Run Code Online (Sandbox Code Playgroud)

目标.java

class Target{
  private String isNew;
  private String anyRestriction;
}
Run Code Online (Sandbox Code Playgroud)

助手.java

class Helper{
  public String asString(Boolean b){
    return b==null ? "N" : (b ? "Y" : "N");
  }
}
Run Code Online (Sandbox Code Playgroud)

MyMapper.java

@Mapper interface MyMapper{
  @Mappings(
    @Mapping(target="isNew", expression="java(Helper.asString(s.isNew()))" …
Run Code Online (Sandbox Code Playgroud)

java string mapping boolean mapstruct

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

COBOL comp 和 comp-3 字段的 Java 映射

我正在从我的 Java 应用程序调用使用 COBOL 创建的 DB2 存储过程。

输入宏(类型varchar):

01 SP1-INPUTS.
    05 FIELD-1      PIC X(03).
    05 FIELD-2      PIC S9(09) COMP.
    05 FIELD-3      PIC S9(15)V9(02) COMP-3.
    05 FIELD-3X     REDEFINES  FIELD-3 PIC X(09)
Run Code Online (Sandbox Code Playgroud)

为了测试存储过程,我只知道FIELD-1. 对于其他字段,要填充压缩部分,我应该放多少个零?请参阅我在传递虚拟值时编写和混淆的代码。

String field1="abc";
String field2="000000000"; // 9 zeroes, correct?
String field3="00...0" // should I give 18 zeroes or 9 zeroes?
Run Code Online (Sandbox Code Playgroud)

输入宏总共有多少字符?

java db2 cobol

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

使用 Java 创建的 ZIP 文件在使用 Windows 资源管理器打开时显示为空

下面的代码用于压缩普通文本文件。当我使用 WinRaR 提取时,它正确显示内容,但当我使用 Windows 资源管理器打开时,它是空的,没有列出文件。我使用的是 Windows 7 Enterprise(64 位)操作系统。知道为什么它没有列在 Windows 资源管理器中吗?提前致谢。

File file = new File("F:\\sample.txt");
    byte[] buf = new byte[1024];
    String outFilename = "F:\\zipped_sample.zip";
    try {
      ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
      FileInputStream in = new FileInputStream(file);
      out.putNextEntry(new ZipEntry(file.toString()));
      int len;
      while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
        out.flush();
      }
      out.closeEntry();
      out.close();
      in.close();
    } catch (Exception e) {
      // log exception here
    }
Run Code Online (Sandbox Code Playgroud)

java zip

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

wsdl2java - 如何忽略 cxf-codegen-plugin 中的特定模式并添加依赖项

见下文,我提到了 3 个项目。

Common
    Age.xsd (namespace: http://xmlns.common/age)
    generated/common/xmlns/age/AgeType.java
    pom.xml (cxf-xjc-plugin xsdtojava)


Person
    PersonService.wsdl (imports Age.xsd in wsd:types)
    generated/com/person/AgeType.java
    pom.xml (cxf-codegen-plugin wsdl2java)

Animal
    AnimalService.wsdl (imports Age.xsd in wsd:types)
    generated/com/animal/AgeType.java
    pom.xml (cxf-codegen-plugin wsdl2java)
Run Code Online (Sandbox Code Playgroud)

无论AnimalService.wsdlPersonService.wsdl进口Age.xsd架构所提到如下:

<wsdl:definitions xmlns:cn="http://xmlns.common/age"
<wsdl:types>
    <xsd:schema>
    <xsd:import
        namespace="http://xmlns.common/age"
         schemaLocation="classpath:/common/xmlns/age/Age.xsd" />
    </xsd:import>
    </xsd:schema>
     <!-- cn:AgeType used in output message -->
    <!-- ignored -->
    </wsdl:definitions>
Run Code Online (Sandbox Code Playgroud)

题:

如何分辨cxf-codegen wsdl2java不生成代码AgeType(在命名空间中的http://xmlns.common/age)和使用common.xmlns.age.AgeType代替com.person.AgeType和com.animal.AgeType在各自项目通过提供Common项目作为依赖?

java wsdl2java maven cxf-codegen-plugin

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

JTable没有填充使用GridBagLayout添加到JPanel的JScrollPane

我有一个JPanelGridBagLayout.所述面板包含2行,第一行具有一个JLabel和第二行具有JScrollPaneJTable内部.该表未填充100%的滚动窗格.即使我调整框架大小,滚动窗格也会调整大小,但内部的桌子总是有固定的宽度.

JTable table=new JTable(myModel);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
JScrollPane scroll=new JScrollPane(table);

JPanel panel=new JPanel(new GridBagLayout());
// component add details skipped
Run Code Online (Sandbox Code Playgroud)

以下是添加到面板时应用于滚动窗格的网格包约束.

GridBagConstraints gbc=new GridBagConstraints();
gbc.gridx=0; // first column
gbc.gridy=1; // second row
gbc.gridwidth=1;
gbc.gridheight=1;
gbc.fill=GridBagConstraints.BOTH;
gbc.anchor=GridBagConstraints.NORTHEAST;
gbc.weightx=1.0;
gbc.weighty=1.0;
Run Code Online (Sandbox Code Playgroud)

什么地方出了错?问题是滚动窗格或表格?

java swing jscrollpane layout-manager gridbaglayout

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

openapi-code-generator 3.3.4 不读取标签并且不需要 API 类名

我有以下openapi文件。我预计要生成的 API 类名将是SampleApi因为操作 "/hello" 被标记为 "sample" tags。但是它使用operation名称生成 API 类名称,它是HelloApi. 我在这里缺少什么?我正在使用openapi-generator-maven-plugin版本3.3.1

openapi: "3.0.0" info: version: 1.0.0 title: Sample Service tags: - name: sample paths: /hello: get: summary: Says hello world operationId: greet tags: - sample responses: 200: description: ok content: plain/text:
schema: type: string example: Hello World

java java-8 openapi-generator

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

为什么BigDecimal.ZERO未缩放?

适用于Javadoc BigDecimal.ZERO说,The value 0, with a scale of 0.正如其名称所暗示人们可以预期,BigDecimal.ZERO应该返回值0.0

我也知道这BigDecimal.ZERO是编码的方式:

private static final BigDecimal zeroThroughTen[] = {
        new BigDecimal(BigInteger.ZERO,         0,  0, 1),
        new BigDecimal(BigInteger.ONE,          1,  0, 1),
...
}

// Constants
/**
 * The value 0, with a scale of 0.
 *
 * @since  1.5
 */
public static final BigDecimal ZERO =
        zeroThroughTen[0];
Run Code Online (Sandbox Code Playgroud)

我不明白为什么在Java中决定BigDecimal.ZERO返回未缩放的零而不是返回十进制零(默认情况下至少使用缩放1,即0.0).

什么是需要,BigDecimal.ZERO并且BigInteger.ZERO两者都0随着规模返回价值0

java biginteger bigdecimal zero

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

删除null元素后java8 make immutable List

我知道Arrays.asList创造不变List.我的要求是创建不可变的List<Student>,不包含任何null元素.所以我new ArrayList()先创建然后null使用java 8 删除元素filters,如下所示:

List<Student> list = new ArrayList<>();
list.add(makeStudent("ram", 'M'));
list.add(makeStudent("sathya", 'F'));
list.add(makeStudent(null, 'M'));
list.add(makeStudent("sri", 'M'));

list = list.stream().filter(s -> s != null).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

以下是makeStudent方法,null如果名称不可用则返回:

private Student makeStudent(String name, char gender) {
    return null != name ? new Student(name, gender) : null;
}
Run Code Online (Sandbox Code Playgroud)

我以为Collectors.toList()会创造不变的.但是我错了.在list这里仍然是可变的.有没有更好的方法来使用单行进行list清理(​​删除null)和不可变java 8

arraylist immutability java-8

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