我的 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) 我的模型类中有几个Boolean字段(源)。我的 DTO 类中的目标字段是String. 我需要映射trueasY和falseas 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 应用程序调用使用 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)
输入宏总共有多少字符?
下面的代码用于压缩普通文本文件。当我使用 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) 见下文,我提到了 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.wsdl与PersonService.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项目作为依赖?
我有一个JPanel带GridBagLayout.所述面板包含2行,第一行具有一个JLabel和第二行具有JScrollPane与JTable内部.该表未填充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)
什么地方出了错?问题是滚动窗格或表格?
我有以下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
适用于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?
我知道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?
java ×8
java-8 ×2
arraylist ×1
bigdecimal ×1
biginteger ×1
boolean ×1
cobol ×1
codegen ×1
db2 ×1
immutability ×1
jscrollpane ×1
mapping ×1
mapstruct ×1
maven ×1
openapi ×1
string ×1
swing ×1
wsdl2java ×1
zero ×1
zip ×1