Processing 在子类中找不到control p5 slider.setRange()

Processing 在子类中找不到control p5 slider.setRange(),processing,control-p5,Processing,Control P5,我试图在一个子类中设置一个滑块的范围,使用getController捕捉相应的控制器,这很好,我在打印中得到的返回值证明了这一点。但是controller.setRange()不能被识别为函数 范围只能在对象创建期间初始化,还是getController返回的对象与我预期的不同 谢谢 class Stepper { String stepperName = "default"; int ID = motorID; int stepperValue; Stepper(String giv

我试图在一个子类中设置一个滑块的范围,使用getController捕捉相应的控制器,这很好,我在打印中得到的返回值证明了这一点。但是controller.setRange()不能被识别为函数

范围只能在对象创建期间初始化,还是getController返回的对象与我预期的不同

谢谢

  class Stepper
  {
String stepperName = "default";
int ID = motorID;
int stepperValue;

Stepper(String givenName) {
  stepperName = givenName;
  cp5.addSlider(stepperName)
    .setPosition(sliderPosX+(sliderWidth+100)*surgeonBotID, sliderPosY+90*servoList.length+30*(motorID-servoList.length))
      .setSize(sliderWidth, int(sliderHeight*0.5))
        //.setRange(0, 179)
          .setSliderMode(Slider.FLEXIBLE);

  println("Created new Stepper: "+stepperName+ " ID: "+ID);
  motorID++;
}

void setRange(float min, float max){
       println("object: "+cp5.getController(getStepperName()).getValue()); 
       cp5.getController(getStepperName()).setRange(min, max);
}
...
  }

这样的问题最好通过咨询来回答

getController()
方法返回一个控制器。控制器类没有
setRange()
函数。该实例恰好是
Slider
的一个实例,它是
Controller
的一个子类,但编译器无法知道这一点。这就是你犯错误的原因

通过将返回值转换为
滑块
,可以告诉编译器实例确实是一个
滑块
,然后可以访问
滑块
类定义的方法:

((Slider)cp5.getController(getStepperName())).setRange(min, max);
为了便于理解,这里将其分为两行:

Slider s = (Slider)cp5.getController(getStepperName());
s.setRange(min, max);