我很困惑,我想我做的事情很愚蠢,我只是看不见!
中央供暖控制:
一个散热器类和一个 RadiatorSize 类。 Radiator具有一个size实例变量,该变量属于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中创建构造函数RadiatorSize(units_constants.RadiatorSize.Size)”;当我同意的时候它会做什么:
public RadiatorSize(Size size) {
throw new UnsupportedOperationException("Not yet implemented");
}
现在,编辑器中没有红色的小圆圈,但是...!
我很困惑
最佳答案
您正在尝试将其用作构造函数:
public void RadiatorSize(Size sz) {
size = sz;
}
因为这不是构造函数,而是
void
方法,所以new RadiatorSize(Size.MEDIUM);
尝试调用没有参数的标准构造函数。知道这一点,给出的错误消息是完全合理的;)只要摆脱
void
返回类型,它应该可以正常工作。