Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    258

    Eliminare funzione static

    Innanzitutto un ringraziamento a tutti quelli che mi hanno aiutato tantissimo
    nel topic precedente.
    Il mio programma funziona egregiamente e vorrei togliermi una
    curiosità.
    Come potrei rendere il metodo fileLenght non statico?
    Ricordo che il programma riceve un file txt e ne calcola il numero di
    righe e di colonne usando la funzione static int fileLenght.
    Grazie in anticipo a chi vorrà aiutarmi.

    import java.util.*;
    import java.io.*;


    public class addtodb {
    /**
    * @param args
    */
    public static int fileLenght(File f)throws IOException {
    int row = 0; //inizializzo il numero di righe
    int columns = 0; //inizializzo il numero di colonne
    FileReader file = new FileReader(f);
    BufferedReader br = new BufferedReader(file);
    String line = br.readLine();
    StringTokenizer st = new StringTokenizer(line);
    System.out.println("Il numero di colonne e' :" + st.countTokens());


    while (line != null) {
    row++;
    line = br.readLine();
    }


    System.out.println("Il numero di righe e' :" + row);
    return 0;
    }
    public static void main(String[] args)throws IOException {
    File f;
    f=new File("Affymetrix_dati.txt");
    try{
    System.out.println(fileLenght(f));
    }
    catch(IOException e){
    System.out.println(e.getMessage());
    }
    }

  2. #2
    Beh devi solo togliere l'indicatore static nell'intestazione del metodo e poi quando lo vuoi usare devi prima creare un oggetti del tipo della classe che lo contiene, ad esempio in un'altra classe in cui devo usare il metodo dovresti fare: (tutto all'interno del main)

    codice:
    addtodb ogg = new addtodb();
    ogg.fileLength(f);
    Nel tuo caso mi pare di capire che hai tutto nella stessa classe...non so quanto può essere utile una cosa del genere...comunque ti resterebbe una cosa così :master:

    codice:
    import java.util.*; 
    import java.io.*; 
    
    
    public class addtodb { 
    /** 
    * @param args 
    */ 
    public int fileLenght(File f)throws IOException {  
    int row = 0; //inizializzo il numero di righe 
    int columns = 0; //inizializzo il numero di colonne 
    FileReader file = new FileReader(f); 
    BufferedReader br = new BufferedReader(file); 
    String line = br.readLine(); 
    StringTokenizer st = new StringTokenizer(line); 
    System.out.println("Il numero di colonne e' :" + st.countTokens()); 
    
    
    while (line != null) { 
    row++; 
    line = br.readLine(); 
    } 
    
    
    System.out.println("Il numero di righe e' :" + row); 
    return 0; 
    } 
    public static void main(String[] args)throws IOException {
    addtodb ogg = new addtodb(); 
    File f; 
    f=new File("Affymetrix_dati.txt"); 
    try{ 
    System.out.println(ogg.fileLenght(f) ); 
    } 
    catch(IOException e){ 
    System.out.println(e.getMessage()); 
    } 
    }
    }
    Il problema è che ti da questo errore perchè in un metodo static (cioè il main) puoi usare solo metodi o variabili che sono a loro volta static. Se dichiari una variabile in un metodo static viene implicitamente creata anchessa static anche se non lo scrivi esplicitamente, questo però non vale per i metodi e le variabili globali che crei fuori dal metodo.

    Se non ti crea problemi io lascerei il metodo static...

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

    Neverland - Il mio Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    258

    parametri di uscita...

    Il problema è che vorrei far sì che il numero di colonne e il numero di righe che calcolo con la funzione int fileLenght siano disponibili come parametri d'uscita del metodo per essere caricati come parametri di ingresso da una seconda funzione che sto implementando.
    Che devo fare al riguardo?
    Thanks

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.