Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Dichiarazione array di String

    Ciao a tutti,
    sto cercando di inserire in un array disponibile a tutti i metodi della classe SortArray il contenuto dell'array args, ma mi restituisce il seguente errore:
    non-static variable a cannot be referenced from a static context

    Dove sbaglio?

    codice:
    public class SortArray {
    
       String[] a;
       // Dichiaro un'array di 10 elementi.
    
      public static void main(String[] args) {
    
          // An instance of the class SortArray need to be created
          // to access class Method
    	
    		
    		a = new String[args.length];
    	 
    	for (int i=0; i<args.length; i++){
    		a[i] = args[i];
    	 }
    
    }
    Grazie in anticipo
    http://www.newsol.ch
    "I'm so sorry"
    Mario Corti, CEO Swissair, 2 Ottobre 2001
    La crisi della società Swissair è culminata con il "grounding" dell’intera flotta aerea nei primi giorni del mese di ottobre 2001.

  2. #2
    Il problema è che tenti di usare l'array a che non è di tipo statico, all'interno di un metodo statico..la correzione è semplice:

    codice:
    public class SortArray {
    
       static String[] a; 
       // Dichiaro un'array di 10 elementi.
    
      public static void main(String[] args) {
    
          // An instance of the class SortArray need to be created
          // to access class Method
    	
    		
    		a = new String[args.length];
    	 
    	for (int i=0; i<args.length; i++){
    		a[i] = args[i];
    	 }
    
    }
    Se dichiaravi "a" all'interno del metodo statico il compilatore attribuisce direttamente lo static anche se non lo hai scritto esplicitamente, però se dichiari una variabile non in un metodo static devi usare esplicitamente la parola chiave static nella dichiarazione.
    Spero di essere stato abbastanza chiaro nella spiegazione...

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Ma puoi fare anche (e forse è meglio) così:
    codice:
    public class SortArray {
        private String[] args;
        
        public SortArray (String[] args) {
            this.args = args;
        }
    
        public static void main(String[] args) {
            SortArray sa = new SortArray (args);
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Grazie mille a entrambi mi siete stati molto utili
    http://www.newsol.ch
    "I'm so sorry"
    Mario Corti, CEO Swissair, 2 Ottobre 2001
    La crisi della società Swissair è culminata con il "grounding" dell’intera flotta aerea nei primi giorni del mese di ottobre 2001.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.