Visualizzazione dei risultati da 1 a 2 su 2

Discussione: chiamata ad un metodo

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    81

    chiamata ad un metodo

    Salve a tutti!
    scrivo questo post per via della mia ignoranza sulla base della programmazione java.
    Ho una classe del genere:
    codice:
    import java.util.ArrayList;
    import java.util.StringTokenizer;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    
    
    
    public class Task {
    	
    	String InputEdge;
    	String InputToken;
    	String TaskName;
    	String TaskToken;
    	String TaskStatus;
    	String OutputEdge;
    	String OutputToken;
    	String task ="\"signavio:sid-F969BBC6-3367-4768-9180-44C040A3DEB7\" . 0,\"Handle Payment\" . false . absent,\"signavio:sid-8D5C98CA-A20A-4264-93CF-ECDF6224901C\" . 0";
    	
    	
    	public ArrayList<String> EdgeTaskEdge()
    	{
    		ArrayList<String> EdgeTaskEdge = new ArrayList<String>();
    		StringTokenizer st = new StringTokenizer(task, ",");
    		while (st.hasMoreTokens())
    		    	{
    		    		EdgeTaskEdge.add(st.nextToken());
    		    	}
    		return EdgeTaskEdge;	
    	}
    	
    	public ArrayList<String> PointDivision(ArrayList<String> EdgeTaskEdge)
    	{
    		ArrayList<String> PointDivision = new ArrayList<String>();
    		for(int i=0; i<EdgeTaskEdge.size(); i++)
    		{
    		StringTokenizer st = new StringTokenizer(EdgeTaskEdge.get(i), ".");
    		while (st.hasMoreTokens())
    		    	{
    		    		PointDivision.add(st.nextToken());
    		    	}
    		}
    		return PointDivision;	
    	}
    	
    	public void setTask(ArrayList<String> PointDivision )
    	{
    		this.InputEdge = (PointDivision.get(0));
    		this.InputToken = (PointDivision.get(1));
    		this.TaskName = (PointDivision.get(2));
    		this.TaskToken = (PointDivision.get(3));
    		this.TaskStatus = (PointDivision.get(4));
    		this.OutputEdge = (PointDivision.get(5));
    		this.OutputToken = (PointDivision.get(6));	
    	}
    	
    	public void stampaTask()
    	{
    		System.out.println(InputEdge);
    		System.out.println(InputToken);
    		System.out.println(TaskName);
    		System.out.println(TaskToken);
    		System.out.println(TaskStatus);
    		System.out.println(OutputEdge);
    		System.out.println(OutputToken);
    		
    	}
    			
    }
    praticamente prendo dei pezzi da quella stringa e li salvo all'interno a delle variabili. ora viene il dubbio perchè quando nel main vado a scrivere:
    codice:
    Task task = new Task();
    task.stampaTask();
    mi ritornano tutte quante le variabili null invece se scrivo:
    codice:
    ArrayList<String> EdgeTaskEdge = task.EdgeTaskEdge(); //stampa documento
            for(String a : EdgeTaskEdge)
                System.out.println("EdgeTaskEdge: "+a);
            ArrayList<String> PointDivision = task.PointDivision(EdgeTaskEdge);
            for(String b : PointDivision)
                System.out.println("PointDivision: "+b);
            task.setTask(PointDivision);
    task.stampaTask();
    mi ritorna con i valori che mi aspetto?? in sintesi...dato che chiamo un metodo all'interno di quella classe...come faccio a fargli fare il tutto segna scrivere ogni volta nel main tutti i metodo con i rispettivi parametri da passare?
    grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da simo9115 Visualizza il messaggio
    perchè quando nel main vado a scrivere:
    codice:
    Task task = new Task();
    task.stampaTask();
    mi ritornano tutte quante le variabili null
    Perché se fai esattamente queste due linee:
    a) La prima istanzia l'oggetto Task. Non hai definito un costruttore esplicitamente, quindi resta quello di default generato dal compilatore, che chiaramente non esegue/sa nulla della tua logica.
    b) stampaTask stampa tutti null ... perché chiaramente non essendo stato eseguito nulla della tua logica, quelle variabili di istanza sono al loro valore di default, cioè null.

    Pertanto mi sembra ovvio che tra

    Task task = new Task();

    e

    task.stampaTask();

    devi fare tu "qualcosa" con quella logica della classe Task. Non ho il tempo adesso per andare a capire il senso/utilizzo di Task.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.