2015-02-09 68 views
0

类的构造函数的文档:日食不会让我访问构造

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”对象。 我做错了什么? 可能文档过时了吗?

谢谢:)

+1

并且int是一个BigDecimal? – zubergu 2015-02-09 08:21:46

回答

3

你传入整数作为第二个参数的构造函数和你的构造函数需要一个BigDecimal对象。 Bigdecimal与整数不一样。所以,你可能想打电话给你的构造为:

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

谢谢! :) 确切的解决方案。感谢您的解释。 – OddDev 2015-02-09 08:36:30

0

变化1new BigDecimal(1)而实例或BigDecimal numberOfValuesint numberOfValues在构造函数

0

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

0

构造函数的第二个参数是类BigDecimal的对象。但是,您将字面值1,它默认为基本类型int。这是不匹配的。

如果你想这样,你应该/可以调用BigDecimal(1)的构造函数作为参数。

0

你有没有参数的构造函数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) 
1

第二参数应该是BigDecimal对象。你正在传递一个int。修正这样的:

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