Ich arbeite an einer einfachen Rechnerzuweisung, bei der ich ein Java-Interface bei der Implementierung des Codes verwenden muss. Ich habe die Schnittstelle wie folgt festgelegt:Aufrufen einer nicht statischen Methode beim Implementieren einer Schnittstelle mit 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);
}
ich dann auf ‚Hinzufügen‘ Klasse wie folgt:
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);
}
}
ich dann diese Add.toString() -Methode von meinem Klienten zu nennen versuchen verfahren wie folgt:
mOut.print(Add.toString(argumentOne, argumentTwo));
wo ist ein ActivityInterface. Mein derzeitiges Problem ist, dass toString in Android Studio rot unterstrichen ist mit dem Fehler 'Nicht-statische Methode toString (int, int) kann nicht aus einem statischen Kontext referenziert werden. Wenn ich die toString-Methode statisch mache, erhalte ich einen anderen Fehler in der Add-Klasse. Ich schätze, meine Herangehensweise ist falsch, und ich würde mich über einige Hinweise freuen.
Außerdem möchte ich meine statischen final int verwenden, um zu bestimmen, welche Klasse aufgerufen werden soll, z. if (operation == ADDITION), dann rufe Add.toString (int, int) und ähnliches mit einer Subtract, Multiply und Divide Klasse auf. Ich sehe derzeit keinen Weg, dies zu tun, würde also jede Anleitung wirklich schätzen. Dank
Was ist der andere Fehler? Vielleicht möchten Sie die Bedeutung des Begriffs "statisch" erforschen. – SomeJavaGuy