eclipse 不允许我访问构造函数

eclipse won't let me access the constructor

class 构造函数的文档:

Constructor Detail
GenerateNextNumberRequest

public GenerateNextNumberRequest()
Default no-arg constructor
GenerateNextNumberRequest

public GenerateNextNumberRequest(NextNumberTypeEnum nextNumberType,
                             BigDecimal numberOfValues)
Required Fields Constructor

但是,如果我像这样访问构造函数:

GenerateNextNumberRequest nnRequest = new GenerateNextNumberRequest(NextNumberTypeEnum.RMANUMBER, 1);

Eclipse 显示错误并告诉我删除参数以创建 "GenerateNextNumberRequest" 的对象。 难道我做错了什么? 文档可能已过时?

谢谢 :)

您正在将整数作为第二个参数传递给构造函数,并且您的构造函数需要一个 BigDecimal 对象。 Bigdecimal 与整数不同。所以你可能想调用你的构造函数:

GenerateNextNumberRequest nnRequest = new GenerateNextNumberRequest(NextNumberTypeEnum.RMANUMBER, BigDecimal.ONE);

在实例化时将 1 更改为 new BigDecimal(1) 或在构造函数中将 BigDecimal numberOfValues 更改为 int numberOfValues

1(构造函数中的第二个参数)不是 BigDecimal。请参阅文档。 here

构造函数的第二个参数是 class BigDecimal 的对象。但是,您输入了文字 1,默认情况下它是原始类型 int。那就是不匹配。

如果你想这样做,你 should/could 调用 BigDecimal(1) 的构造函数作为参数。

您没有带参数的构造函数NextNumberTypeEnum nextNumberType, int numberOfValues

GenerateNextNumberRequest nnRequest = new GenerateNextNumberRequest(NextNumberTypeEnum.RMANUMBER, 1);

您必须将构造函数的调用更改为:

GenerateNextNumberRequest nnRequest = new GenerateNextNumberRequest(NextNumberTypeEnum.RMANUMBER, BigDecimal.valueOf(1));

或者将您的构造函数更改为:

public GenerateNextNumberRequest(NextNumberTypeEnum nextNumberType,
                             int numberOfValues)

第二个参数应该是一个 BigDecimal 对象。您当前正在传递一个 int。像这样解决这个问题:

GenerateNextNumberRequest nnRequest = new GenerateNextNumberRequest(NextNumberTypeEnum.RMANUMBER, new BigDecimal(1));