Methoden auf Enum

fbergie

Grünschnabel
Hallo!

Ich habe da folgende Aufgabe bekommen:

Definieren Sie einen Aufzählungstyp (enum) Aufrufart mit der Methode gibAufrufart, der das String-Array args aus einer Methode public void main(String args[]) übergeben werden kann, und die als Rückgabe die Aufrufart-Wert Kein_Parameter, Ein_Parameter, Zwei_Parameter und Viele_Parameter je nach anzahl der Kommandozeilenparameter liefert

also habe ich mich hingesetzt und es ist dieses dabei raus gekommen:

Java:
public class Aufg5  {
    
public enum Aufrufart{ Kein_Parameter, Ein_Parameter, Zwei_Parameter, Viele_Parameter}
    
    Aufg5(int y)
    {
        System.out.println(gibAufrufart(y));
    }
          
    public Aufrufart gibAufrufart(int y)
    {
     if(y==0)
           return Aufrufart.Kein_Parameter;
       else if(y==1)
           return Aufrufart.Ein_Parameter;
       else if(y==2)
           return Aufrufart.Zwei_Parameter;
       else
           return Aufrufart.Viele_Parameter;
    }

    public static void main(String[] args)
    {
      new Aufg5(args.length);
    }

}

doch dann war ich eher der Meinung das die Aufgabe etwas anderes von mir will, und inach einigen Seiten "insel" habe ich dieses hervorgebracht:

Java:
public enum Aufrufart {

    Kein_Parameter, Ein_Parameter, Zwei_Parameter, Viele_Parameter;
    
   public Aufrufart gibAufrufart(String[] args){

    if     (args.length == 0)
        return this.Kein_Parameter;
    else if(args.length == 1)
        return this.Ein_Parameter;
    else if(args.length == 2)
        return this.Zwei_Parameter;
    else
        return this.Viele_Parameter;
    }
   
}

meine Frage ist nun, wie kann ich den die gibAufrufart aufrufen um mir dann den rückgabewert auszugeben.
Habe es versucht mit

public static void main(String[] args) {
new Aufrufart();


aber das geht nicht.
 
Hi,
da die Methode gibAufrufart() public ist, ist die Sache leicht:
Java:
public class Main{
 public static void main(String[] args){
   Aufrufart p  = Aufrufart.gibAufrufart(args);
 }
}
Gegebenenfalls musst du die Methode gibAufrufart noch statisch machen, da bin ich mir jetzt nicht sicher:(.

Ciao
DosCoder
 
statisch:
Code:
public enum Aufrufart {
	Kein_Parameter, Ein_Parameter, Zwei_Parameter, Viele_Parameter;
	public static Aufrufart gibAufrufart(String[] args) {
		if (args.length == 0)
			return Kein_Parameter;
		else if (args.length == 1)
			return Ein_Parameter;
		else if (args.length == 2)
			return Zwei_Parameter;
		else
			return Viele_Parameter;
	}
	public static void main(String[] args) {
		System.out.println(Aufrufart.gibAufrufart(args));
	}
}
nicht statisch, dafür unschönerer Aufruf:
Code:
public enum Aufrufart {
	Kein_Parameter, Ein_Parameter, Zwei_Parameter, Viele_Parameter;
	public Aufrufart gibAufrufart(String[] args) {
		if (args.length == 0)
			return Kein_Parameter;
		else if (args.length == 1)
			return Ein_Parameter;
		else if (args.length == 2)
			return Zwei_Parameter;
		else
			return Viele_Parameter;
	}
	public static void main(String[] args) {
		System.out.println(Aufrufart.Kein_Parameter.gibAufrufart(args));
	}
}
 
Zurück