Search code examples
javacloudsim

How can I fix the following problem regarding the variable?


I have a class and inside it there is a baseDir variable which has been defined as follows:

public class experiment {
    for (int exp = 0; exp < experimentCnt; exp++) {
        String dirString = config.getClass().getSimpleName() + "_" + df.format(new Date());
        String baseDir = new File(homeDir + "/" + dirString).getAbsolutePath();
        System.out.println("Running simulation: " + dirString);

        setCurrentDirectory(baseDir);

        PrintWriter paramsLog = null;

        try {
            paramsLog = new PrintWriter(
                 new File("experimentParams.log").getAbsoluteFile(), "UTF-8");
            paramsLog.println(params);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

Now, I want to use that baseDir variable in another class. How can I make it accessible?


Solution

  • Instead of making a new variable inside your function, you should just make a public variable outside of your function.

    public class experiment {
    
    public String baseDir;
    
        for (int exp = 0; exp < experimentCnt; exp++) {
            String dirString = config.getClass().getSimpleName() + "_" + df.format(new Date());
            baseDir = new File(homeDir + "/" + dirString).getAbsolutePath();
            System.out.println("Running simulation: " + dirString);
    
            setCurrentDirectory(baseDir);
    
            PrintWriter paramsLog = null;
    
            try {
                paramsLog = new PrintWriter(
                     new File("experimentParams.log").getAbsoluteFile(), "UTF-8");
                paramsLog.println(params);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }