eclipse不会让我访问构造函数

时间:2015-02-09 08:20:10

标签: java eclipse constructor

班级建设者的文件:

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"的对象。 难道我做错了什么? 文件可能已过时了吗?

谢谢:)

6 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

构造函数的第二个参数是类BigDecimal的对象。但是,你把文字1,默认情况下是基本类型int。那是不匹配的。

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

答案 5 :(得分: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)