This method must return a result of type int

milexy1986

Neues Mitglied
Hallo Leute,

bin auch ziemlicher Anfaenger mit Java. Hier habe ich mal ein ganz ganz einfaches Beispiel. Was ist da nicht OK. Alle Werte sind ja vom Typ int . ?????:L ...Danke im Vorraus

Java:
public class Uebung {
	 static int test (int a) {      //This method must return a result of type int 
		if (a == 1)
			return 1;
		else if (a == 2)
			return 2;

	} 

	public static void main(String arguments[]) {
		System.out.println(test(1));

	}
}
 
Zuletzt bearbeitet von einem Moderator:

JAVAnnik

Bekanntes Mitglied
du braucht noch ein return falls a nicht 1 oder 2 ist, könnte so aussehen:

Java:
public class Uebung
{
     static int test (int a)
     {

        if (a == 1) return 1;
        else if (a == 2) return 2;
        return 0;

    }

    public static void main(String arguments[]) {
        System.out.println(test(1));
    }
}
 

Gossi

Bekanntes Mitglied
Du musst generell in Java bei jeder nicht void-Methode (void = "Still") etwas zurück geben.

Du müsstest also z.B. nach deiner if-Abfrage noch ein else machen:

Java:
static int test (int a) {      //This method must return a result of type int 
        if (a == 1)
            return 1;
        else if (a == 2)
            return 2;
        else return 0;
}

Oder halt einfach am ende der Methode ein
Code:
return 0

Wie du das ganze Lösen könntest ohne ein weiters return wäre mit globalen Variablen, aber das is nen anderes Thema ^^
 
T

Tomate_Salat

Gast
Java:
if (a == 1)
    return 1;
else if (a == 2)
    return 2;
}

An deiner Stelle, würde ich die [c]{}[/c]-klammern verwenden. Das obenstehende wird zwar (abgesehen von dem fehlenden return-Statement) funktionieren, ist aber fehleranfälliger. Also besser:
Java:
if(a==1) {
   return 1;
} else if(a==2) {
   return 2;
}

//return -1;

wobei man hier auch einfach schreiben könnte
Java:
static int test(int a) {
     return a;
}
aber da es offensichtlich eine Übung ist, hinterfrage ich den Sinn mal nicht :D
 

Gossi

Bekanntes Mitglied
Würd mich mal interessieren, inwiefern globale Variablen (was auch immer das sein soll) das return-Statement ersetzen können?!

Java:
public class Uebung
{

	private static int ausgabe = 0;

	public static void test(final int a) {

		if (a == 1) {
			ausgabe = 1;
		} else if (a == 2) {
			ausgabe = 2;
		} else {
			ausgabe = 0;
			// Oder ausgabe = a;
		}

	}

	public static void main(final String arguments[]) {
		test(1);
		System.out.println(ausgabe);
	}
}

Aber wie gesagt, wird wohl nicht sinn der Übung gewesen sein.....
 

stone71

Mitglied
Die bisherigen Tipps waren sehr gut und da gibt es kaum noch etwas zu ergänzen. In manchen Fällen macht es Sinn jedoch nur einen return in einer Methode zu definieren. Es macht bei unübersichtlichen Methoden aus meiner Sicht die Fehlersuche einfacher.

Hier einmal das Beispiel:
Java:
static int test (int a)
{
   int rueckgabe=-1;
   if (a == 1) {
       rueckgabe = 1;
   } else if (a == 2) {
       rueckgabe = 2;
   }
   return rueckgabe;
}

Aus meiner Sicht könnte die Methode also auch in dieser Form Sinn machen, aber dies ist, wie vieles, eine Stilfrage.
 
T

Tomate_Salat

Gast
Würd mich mal interessieren, inwiefern globale Variablen (was auch immer das sein soll) das return-Statement ersetzen können?!

Ich glaube, er meint wohl sowas:
Java:
public class Sample {
    private int result=-1;

    public void test(int a) {
         if(a==1) {
            result=1;
         } else if(a==2) {
            result=2;
         }
    }

    public int getResult() {
         return result;
    }
}
 

stone71

Mitglied
Jepp, sowas meinte ich, hatte ich nen stück weiter oben ja auch schon geschrieben ^^

Ja, es kann sein, dass ich hier irgendetwas falsch verstanden habe, aber ein return statement wird immer notwendig, wenn man Variablen außerhalb der Klasse abfragen möchte. In diesem Vorschlag wird es nur in getResult gekapselt.
Das standardisierte Vorgehen ist, dass man eine private Variable anlegt und diese mit Hilfe einer set/get - Methode außerhalb der Klasse sichtbar macht. ;)
 
T

Tomate_Salat

Gast
@Gossi: Als ich die antwort geschrieben hatte, war dein Post noch nicht da ;-). Ich finde diese Variante in dem Falle nicht gut. Wenn es ein einfaches Ergebnis ist, kann man das auch gleich zurückgeben.
 

Gossi

Bekanntes Mitglied
Ja, es kann sein, dass ich hier irgendetwas falsch verstanden habe, aber ein return statement wird immer notwendig, wenn man Variablen außerhalb der Klasse abfragen möchte. In diesem Vorschlag wird es nur in getResult gekapselt.
Das standardisierte Vorgehen ist, dass man eine private Variable anlegt und diese mit Hilfe einer set/get - Methode außerhalb der Klasse sichtbar macht. ;)

@Gossi: Als ich die antwort geschrieben hatte, war dein Post noch nicht da ;-). Ich finde diese Variante in dem Falle nicht gut. Wenn es ein einfaches Ergebnis ist, kann man das auch gleich zurückgeben.

Stimmt! So kann man es auch ausdrücken! :)

Ich habe ja auch nie geschrieben, das diese Methode gut/richtig wäre, ich wollte lediglich darauf hinweisen, das es sie gibt, in diesem Beispiel wäre ne globale Vaiable dafür auch völlig übertrieben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
S this method must return a result of type double Java Basics - Anfänger-Themen 2
R Eclipse: This method must return a result of type double. Java Basics - Anfänger-Themen 2
R finaler Wert in outerMethod von method in InnerMethodClass Java Basics - Anfänger-Themen 2
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
P myClass?.method() in Java Java Basics - Anfänger-Themen 4
T setFill method Java Basics - Anfänger-Themen 3
N The method setSaldo(double) in the type Konto is not applicable for the arguments (int, int) Java Basics - Anfänger-Themen 2
A startsWith method und substring Java Basics - Anfänger-Themen 2
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Java Generics factory method Java Basics - Anfänger-Themen 2
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
K Eigene Annotations, Pre-/Post-/Call-Method Java Basics - Anfänger-Themen 6
B Threads Thread sleep() Method einfache Frage Java Basics - Anfänger-Themen 8
G Was als main Method Java Basics - Anfänger-Themen 6
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
E Array to String Method Reverse Java Basics - Anfänger-Themen 5
D Methoden undefined method Java Basics - Anfänger-Themen 13
S Method mit Eingabe abrufen Java Basics - Anfänger-Themen 1
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
U Method References Java Basics - Anfänger-Themen 1
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
P Variablen einer Methode in andere Method übergeben Java Basics - Anfänger-Themen 6
B Methoden The method mirror(double[]) in the type Convolution is not applicable for the arguments (double) Java Basics - Anfänger-Themen 8
J easy remove method Java Basics - Anfänger-Themen 1
M abstract method does not override or implement.... Java Basics - Anfänger-Themen 7
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
M Deklaration und Initialisierung bei Method Erstellung Java Basics - Anfänger-Themen 12
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
K String equalIgnoreCase() Method Java Basics - Anfänger-Themen 19
E non-static method und static context Java Basics - Anfänger-Themen 15
L Command Prompt / Main Method / String Java Basics - Anfänger-Themen 9
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
T selection method does not contain a main type Java Basics - Anfänger-Themen 7
U UML Factory Method Java Basics - Anfänger-Themen 4
R Compiler-Fehler Cannot find symbol (Method printIn) Java Basics - Anfänger-Themen 3
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
M Problem mit Static Method Java Basics - Anfänger-Themen 8
W Main-method in Object-classes Java Basics - Anfänger-Themen 5
J Compiler findet method nicht Java Basics - Anfänger-Themen 12
M Fehlermeldung: the method.... ist undefined for the type object Java Basics - Anfänger-Themen 6
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
Y Theorie: Abstract Method Java Basics - Anfänger-Themen 6
C Methoden numberField.getDouble no such method error Java Basics - Anfänger-Themen 4
F Mal wieder: Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 9
F Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 3
Q non-static method blub cannot be referenced from a static context Java Basics - Anfänger-Themen 6
E Netbeans, "class does not have a main method" Java Basics - Anfänger-Themen 8
L no such method error: main() Java Basics - Anfänger-Themen 2
O Abstract Method & Generics Java Basics - Anfänger-Themen 10
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
R Could not find main method Java Basics - Anfänger-Themen 3
U Boolean istGleich() Method Java Basics - Anfänger-Themen 15
Luk10 method () not found Java Basics - Anfänger-Themen 9
A OOP Fehler non-static method can not be[...] Java Basics - Anfänger-Themen 2
N Reference to non-static method Java Basics - Anfänger-Themen 8
G non static method scale(int,int) cannot be referenced from a static context Java Basics - Anfänger-Themen 16
A The method getYear() from the type Date is deprecated Java Basics - Anfänger-Themen 6
A cannot find symbol - symbol : method Java Basics - Anfänger-Themen 5
S The method readInt() Problem Java Basics - Anfänger-Themen 5
E method undefined - wo ist der Fehler? Java Basics - Anfänger-Themen 5
J non static method cannot be referenced from static context Java Basics - Anfänger-Themen 7
L cannot find symbol-method Java Basics - Anfänger-Themen 3
D kleine Passwortabfrage erstellen incl. Method zum verändern Java Basics - Anfänger-Themen 7
S Mein Quicksort Problem: he method quickSort(int[], int, int) Java Basics - Anfänger-Themen 2
M Invalid Method Java Basics - Anfänger-Themen 7
F does not overwride abstract method Java Basics - Anfänger-Themen 2
C Fehler: non-static method Java Basics - Anfänger-Themen 5
B method intValue() is undefined for the type String (?) Java Basics - Anfänger-Themen 4
R Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 5
G String zu Method Java Basics - Anfänger-Themen 11
B cannot find symbol method equalsIgnoreCase? Java Basics - Anfänger-Themen 23
T Does not have a main method ? GGT. Java Basics - Anfänger-Themen 4
N invalid method declaration; return type required Java Basics - Anfänger-Themen 4
T this method.is not visible Java Basics - Anfänger-Themen 3
C overridden method does not throw java.io.IOException Java Basics - Anfänger-Themen 4
R non-static method execute Java Basics - Anfänger-Themen 3
J Morgen Java-Klausur. Stack, Heap, Method-Area Java Basics - Anfänger-Themen 2
V Non Static Method. Java Basics - Anfänger-Themen 2
S Method undefinded for "Klasse" Java Basics - Anfänger-Themen 4
M Fehlermeldung (The method contains(String) is. Java Basics - Anfänger-Themen 3
M Fehlermeldung (the method add(OE) in the type Abteilung.) Java Basics - Anfänger-Themen 2
N ActionListener versch. Buttons zuweisen => versch. Method Java Basics - Anfänger-Themen 13
T method <init> not found in class . Java Basics - Anfänger-Themen 4
G Problem (oder Verständnisporblem) bei einer static method Java Basics - Anfänger-Themen 9
frau-u Altes Problem: non-static method cannot be reference Java Basics - Anfänger-Themen 7
M Solaris - Method Split Fehler Java Basics - Anfänger-Themen 2
M method xxx() from the type xxx is deprecated Java Basics - Anfänger-Themen 3
A Method.invoke() mit geerbten Methoden Java Basics - Anfänger-Themen 2
A The method getClass() from the type saveLog is not static Java Basics - Anfänger-Themen 2
G Abstract Class - Abstract Method Java Basics - Anfänger-Themen 4
R Could not find Main-Method Java Basics - Anfänger-Themen 4
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
F trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben