Erste Schritte Array Werte an Methode übergeben

drace

Mitglied
Hallo Community,

ich habe oft die Frage gefunden, wie man das Ergebnis einer Methode in ein Array schreibt. Ich würde das aber gern anders herum ausführen. Eine Methode aufrufen und dabei die Werte eines Array übergeben. Weil das Project zu groß ist hier ein stark vereinfachter Beispielcode.

Meldung:
Cannot make a static reference to the non-static field testwerte

Java:
package testscript;

public class script {

    int[] testwerte = {1,1,0,1,0,0,0,0};
   
    public static void main(String[] args) {
        for (int x=0; x<4; x++){
            System.out.println(werty(testwerte[x]));
        }
    }

    public static int werty(int z){
        int a=z;
        return a;
    }

}

Danke vorab für die Mühe.
 
Bin mir nicht sicher, ob ich die Frage verstehe, aber meinst du so etwas:
Java:
    static Object[] oArr;
    static String[] sArr;
    static int[] iArr;

    public static void main(String[] args) {
        fill('5',new Integer(4),"3",2);
        System.out.println("oArr = " + Arrays.toString(oArr));
        System.out.println("sArr = " + Arrays.toString(sArr));
        System.out.println("iArr = " + Arrays.toString(iArr));
    }

    static void fill(Object... arr) {
        oArr = new Object[arr.length];
        sArr = new String[arr.length];
        iArr = new int[arr.length];
        int i = 0;
        for (Object object : arr) {
            oArr[i] = object;
            sArr[i] = object.toString();
            try {
                iArr[i] = Integer.parseInt(object.toString());
            } catch (NumberFormatException e) {
                System.out.println("e = " + e);
            }
            i++;
        }
    }[/java]

Vieles Möglich, aber werd doch mal etwas konkreter.
 
Hallo,
erst mal danke an euch beide für die Antwort. Ich wollte niemanden zutexten, aber ich muss vielleicht doch mehr erklären.
Ich möchte gern ein Schieberegister betanken. In das lassen sich immer 8 Bit schreiben. Und je nach Zustand wird dann ein Pin eingeschalten oder eben nicht. (Falls jemand sehen will, was das ist.)
Ich lege also an einem Pin das Datensignal an und schalte dann ein zweiten Pin kurz an und wieder ab. Damit wird das Datensignal in das Schieberegister geschrieben. Das ganze sieht dann so aus.
Java:
//shift register clock input (shrci)
//storrage register clock input (strci)
//serial data input (sdi)

//Daten für den sdi)
     int testrun[8] = {1,1,0,1,0,0,0,0};

void ledAnzeige(){
       //Zustand der pins definieren
      digitalWrite(shrci, LOW);
      digitalWrite(strci, LOW);
      digitalWrite(sdi, LOW);

      for (int i=0; i<8; i++) {
        // Jetzt den Wert der aktuellen Stelle ans Datenpin DS anlegen
        digitalWrite(sdi, testrun[i]);
        // Dann ShiftPin SHCP von LOW auf HIGH, damit wird der Wert
        // am Datenpin ins Register geschoben.
        digitalWrite(shrci, HIGH);
        //Dann wieder zurück stellen
        digitalWrite(shrci, LOW);
     }
  
    //am Ende den Zusatnd des Schieberegisters ausgeben
    digitalWrite(strci, HIGH);
    digitalWrite(strci, LOW);
}
Da ich diesen Abschnitt in meinem Projekt sehr, sehr oft brauche wollte ich das eben in einem Methode auslagern. Leider rufe ich die Methode immer mit unterschiedlichen Array Werten die auch nicht immer "testrun" heißen, sondern deren Name je nach Situation variieren muss.

Ich habe nach dem letzten Hinweis gehofft, statt
Java:
public static int werty(int z)
einfach auf static verzichten zu können, hat natürlich auch nicht funktioniert:
Java:
public int werty(int z)

Nochmals Danke.
 
Hallo Community,

entschuldigt bitte, aber mich treibt das hier zur Verzweiflung.
Ich verstehe einfach nicht warum das nicht funktioniert.

Java:
public class script {

   public static void main(String[] args) {
       int a=0;
       werty(5);
       system.out.println(a);
       
   }

   public int werty(int z){
       int a=z;
       return a;
   }

}
 
Du kannst es so machen:
Java:
public class script {

	static int a = 0;

	public static void main(String[] args) {
		werty(5);
		System.out.println(a);

	}

	public static int werty(int z) {
		a = z;
		return a;
	}

}
 

Zurück
Oben