Ich lerne inneren Klassen in Java.Es gibt ein Beispiel für die Verwendung von inneren Klassen mit verschiedenen Zugriffsmodifikatoren.Ich schrieb den Code nur ich sehe in dem Buch, aber ich bekomme ein Fehler, den ich im Titel erwähnt habe. Wie ich weiß, können wir nicht eine statische Variable verwenden, Methode in einem nicht statischen Bereich, aber was ich nicht verstehe ist, bekomme ich diesen Fehler nur mit meinem String-Array.Integer-Array funktioniert gut.Was bin Ich vermisse hier?Nicht-statische Methode kann nicht aus einem statischen Kontext Fehler
package innerclasses;
public class AlanlaraErisim {
private class StringDiziYaz{
private void diziYaz(String[]dizi){
for(String x: dizi){
System.out.println(x + " ");
}
}
}
protected class IntegerDiziYaz{
protected void diziYaz(Integer[]dizi){
for(Integer x: dizi){
System.out.println(x + " ");
}
}
}
public static void main(String[] args) {
AlanlaraErisim.StringDiziYaz stringDiziYaz = new AlanlaraErisim().new StringDiziYaz();
String[] stringDizi = {"abc","def","ghi","jkl","mno"};
StringDiziYaz.diziYaz(stringDizi); //Gives the error
AlanlaraErisim.IntegerDiziYaz integerDiziYaz = new AlanlaraErisim().new IntegerDiziYaz();
Integer[] intDizi = {1,2,3,4,5,6};
integerDiziYaz.diziYaz(intDizi); //Works fine
}}
Das ist der Ausgang:
Exception in thread "main" java.lang.RuntimeException: uncompilable Quellcode - nicht statische Methode diziYaz (java.lang.String []) nicht referenziert werden aus einem statischen Kontext bei innerclasses.AlanlaraErisim.main (AlanlaraErisim.java:42) /Users/sametsahin/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53: Java zurückgegeben: 1 BUILD FAILED (Gesamtzeit: 1 Sekunde)
Ihr Variablenname ist 'stringDiziYaz', nicht' StringDiziYaz'. – Bubletan