发现我有一个设计采取一个字符串值的方法创造了一个魔方类:方法不超
public Cube()
{
super();
}
public Cube(int side)
{
this.side = side;
}
public Cube(String color)
{
this.color = color;
}
我在我的魔方类扩展
另一个子创建了一个setter方法public void setColor()
{
this.color = color;
}
当我使用setColor(Cube.Cube(RED));方法,我得到一个编译错误和一个RuntimeException。 IDE说它无法在Cube类中找到Cube(字符串)符号。
我接近这个不正确吗?
编辑: 我使用的RED变量初始化为:
final static String RED = "red";
我的最终目标是建立基于用户输入的物体的颜色。这是为了一个学校项目,所以我在发布整个代码时犹豫不决。我不想干扰我用这种方法试图完成的事情。这是一个初学者级别的Java类,因此我使用switch语句作为用户输入。如果用户输入“红色”,我试图调用此方法将立方体的颜色设置为红色。
static void addCubeColor()
{
String userColor;
System.out.println("Please enter the cube's color: ");
userColor = input.nextLine();
switch(userColor.toLowerCase())
{
case RED : setColor(Cube.Cube(RED));
break;
case GREEN : setColor(Cube.Cube(GREEN));
break;
case BLUE : setColor(Cube.Cube(BLUE));
break;
default : setColor(Cube.Cube(RED));
break;
}
}
如果你得到一个异常*和*编译错误,那说明你试图运行代码,尽管它没有编译。不要这样做。接下来,目前还不清楚你期望“Cube.Cube(RED)”的表达意味着什么......你的意思是“Cube.RED”?最后,如果你只是提供一个[mcve]来展示问题而不是片段,那真的很有帮助。目前还不清楚问题是否与子类有关,或者只是说您没有正确引用常量。 –
setColor方法看起来很奇怪。你确定它没有参数吗? –