で発見されていない私は、文字列値に取るように設計された方法で作成したキューブのクラスを持っている:メソッドがスーパークラス
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(String)シンボルを見つけることができないと言っています。
これは間違っていますか?
EDIT:私の最終目標は、ユーザーの入力に基づいてオブジェクトの色を設定することです
final static String RED = "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;
}
}
:たとえば :これが機能する
、あなた
setColor
方法はString color
引数を取る必要がありますコンパイルしていないのにコードを実行しようとしています。それをしないでください。次に、「Cube.Cube(RED)」という表現が期待していることは明確ではありません。単に「Cube.RED」を意味しましたか?最後に、スニペットではなく問題を示す[mcve]を提供すれば本当に役に立ちます。問題がサブクラスと何か関係があるかどうか、あるいはあなたがあなたの定数を適切に参照していないということが本当にあるかどうかはまったく明らかではありません。 –そのsetColorメソッドが奇妙に見えます。パラメータがないと確信していますか? –