私はコードの実装でJavaインターフェイスを使用する必要がある簡単な電卓の割り当てに取り組んでいます。次のように私は、インターフェイスを設定している:Javaを使用してインターフェイスを実装しようとすると非静的メソッドを呼び出す
public interface OperationInterface {
// create symbolic constants to define operation options
static final int ADDITION = 1;
static final int SUBTRACTION = 2;
static final int MULTIPLICATION = 3;
static final int DIVISION = 4;
// return answer to requested calculation as a string
public String toString(int argumentOne, int argumentTwo);
}
次のように私はその後、私の「追加」クラスを持っている
:
public class Add implements OperationInterface {
// override toString method by returning answer to calculation as a string
public String toString(int argumentOne, int argumentTwo)
{
return "" + (argumentOne + argumentTwo);
}
}
が、私はその後、私のクライアントからこのAdd.toString()メソッドをコールしようとしています
mOut.print(Add.toString(argumentOne, argumentTwo));
ここで、mOutはActivityInterfaceです。私の現在の問題は、toStringはAndroidスタジオで赤文字の下線が引かれていることです。 '非静的メソッドtoString(int、int)は静的コンテキストから参照できません。私がtoStringメソッドを静的にすると、Addクラスで別のエラーが発生します。私のアプローチは間違っていると思いますので、いくつかのガイダンスに感謝します。
また、static final intを使用して、どのクラスを呼び出すかを決定したいと思います。 if(operation == ADDITION)、次にAdd.toString(int、int)などをSubtract、Multiply、Divideクラスで呼び出します。私は現時点でそれを行う方法を見ることができませんので、再びすべての指導を感謝します。おかげ
他のエラーは何ですか?キーワード 'static'の意味を調べたいと思うかもしれません。 – SomeJavaGuy