我很困惑,我想我在做一些很愚蠢的事情,我只是看不见!
集中供热控制:
散热器类和RadiatorSize类。散热器有一个大小实例变量,它属于RadiatorSize类。我有XSMALL,..。用于散热器尺寸的XLARGE;定义为RadiatorSize中的公共枚举。
所以,我想,创造一个新的散热器,并给它中等大小。
size = new RadiatorSize(RadiatorSize.Size.MEDIUM);Netbeans告诉我:
...\CentralHeating\src\hardwaremodel\Radiator.java:17:
error: constructor RadiatorSize in class RadiatorSize cannot be
applied to given types;
size = new RadiatorSize(RadiatorSize.Size.MEDIUM);
required: no arguments
found: Size
reason: actual and formal argument lists differ in length
1 error这是冒犯性的课程。
/** Radiator class **/
package hardwaremodel;
import units_constants.RadiatorSize;
public class Radiator {
private int boilerSequence;
private RadiatorSize size;
private double volume; //cubic centimetres
public void Radiator(int blrSqnc) {
boilerSequence = blrSqnc;
size = new RadiatorSize(RadiatorSize.Size.MEDIUM); //ERROR HERE
}
}
/** RadiatorSize class **/
package units_constants;
public class RadiatorSize {
public enum Size {XSMALL, SMALL, MEDIUM, LARGE, XLARGE};
private Size size;
public void RadiatorSize(Size sz) {
size = sz;
}
}现在,Netbeans给了我一个提示,它建议“在units_constants.RadiatorSize中创建构造器units_constants.RadiatorSize";如果我同意,它就会这样做:
public RadiatorSize(Size size) {
throw new UnsupportedOperationException("Not yet implemented");
}现在编辑器里没有小红圈了,但是.!
我很困惑。
发布于 2012-11-12 14:37:26
您正在尝试将其用作构造函数:
public void RadiatorSize(Size sz) {
size = sz;
}因为这不是构造函数,而是void方法,所以new RadiatorSize(Size.MEDIUM);试图调用没有参数的标准构造函数。)知道了这一点,给出的错误信息是完全有意义的;)
只要去掉void返回类型,它就会正常工作。
发布于 2012-11-12 14:37:50
构造函数没有返回类型,甚至没有空类型。
public void RadiatorSize(Size sz) {
size = sz;
}是一个方法,而不是构造函数。
public RadiatorSize(Size sz) {
size = sz;
}现在这是一个构造函数
发布于 2012-11-12 14:38:03
这是:
public void RadiatorSize(Size sz) {
size = sz;
}不是构造函数,而是一种方法。您将void指定为返回类型。只需看看Netbeans生成了什么:
public RadiatorSize(Size size) {
throw new UnsupportedOperationException("Not yet implemented");
}注意到这里缺少void返回类型吗?
https://stackoverflow.com/questions/13345580
复制相似问题