0

I just started Java and search everywhere, but for whatever reason wasn't able to find a solution. My problem seems simple to me: I have two classes in the same folder, that folder is my package, so to illustrate:

packageE/Class1.java
packageE/Class2.java

I need to make an instance of class 1 in class2, but it just doesn't work. Here's a sample:

file path: packageE/Class1.java

package packageE
public class Class1 {... something ...}

file path: packageE/Class2.java

package packageE
public class Class2 {
    public void main (String[] args) {
        Class1 object = new Class1();
    } 

I get this error

Class2.java:52: error: cannot find symbol

                    Class1 object = new Class1();
                    ^
  symbol:   class Class1

  location: class Class2

Class2.java:52: error: cannot find symbol

                    Class1 object = new Class1();
                                                        ^
  symbol:   class Class1

  location: class Class2

As requested, the full source code: NOTE: class1 = ClientIndividual AND class2 = Stakeholders

FIRST FILE

package substitutiva;
import java.util.ArrayList;
import java.util.Scanner;

public class Stakeholders {
    static ArrayList<Object> companyList = new ArrayList<>();
    ArrayList<Object> individualList = new ArrayList<>();
    ArrayList<Object> employeeList = new ArrayList<>();

    public static void addToRegistry (Object person) {
        System.out.println(person.getClass());
        companyList.add(person);
    }

    public static void main (String[] args) {
        Scanner read = new Scanner(System.in);
        
        // select action
        String selectedAction = "";
        while (selectedAction != "1" && selectedAction != "2") {
            System.out.println("Selecione uma ação:");
            System.out.print("1. Cadastrar");
            System.out.println("2. Listar registros");
            selectedAction = read.nextLine();
            
            if (selectedAction != "1" && selectedAction != "2") {
                System.out.println("Opção indisponível! \n");
            }
        }

        // select person
        String selectedOption = "";
        while (selectedOption != "1" && selectedOption != "2" && selectedOption != "3") {
            System.out.println("Qual tipo de pessoa deseja acessar?");
            System.out.println("1. Funcionário");
            System.out.println("2. Cliente PF");
            System.out.println("3. Cliente PJ");
            selectedOption = read.nextLine();
            
            if (selectedOption != "1" && selectedOption != "2" && selectedOption != "3") {
                System.out.println("Opção indisponível! \n");
            }
        }

        // register
        if (selectedAction == "1") {
            switch (selectedOption) {
                case "1":
                    
                    break;
                case "2":
                    ClientIndividual personObject = new ClientIndividual();
                    addToRegistry(personObject);
                    break;
                case "3":
                
                    break;

                default:
                    break;
            }
        }

        // list
        else if (selectedAction == "2") {
            switch (selectedOption) {
                case "1":
                    break;
                case "2":
                    break;
                case "3":
                    break;
                
                default:
                    break;
            }
        }
        

        read.close();
    }

}

SECOND FILE

package substitutiva;

import java.util.Scanner;

public class ClientIndividual implements Person {
    String name;
    String cpf;

    @Override
    public void registerPerson() {
        Scanner read = new Scanner(System.in);
        
        System.out.println("Nome: ");
        this.name = read.nextLine();

        System.out.println("CPF: ");
        this.cpf = read.nextLine();

        read.close();
    }

    // constructor
    public ClientIndividual(){};

    // getters & setters
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCpf() {
        return this.cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

}

THIRD FILE (INTERFACE)

package substitutiva;

public interface Person {
    public void registerPerson ();
}

THE ORIGINAL ERROR

Stakeholders.java:52: error: cannot find symbol
                    ClientIndividual personObject = new ClientIndividual();
                    ^
  symbol:   class ClientIndividual
  location: class Stakeholders
Stakeholders.java:52: error: cannot find symbol
                    ClientIndividual personObject = new ClientIndividual();
                                                        ^
  symbol:   class ClientIndividual
  location: class Stakeholders

1 Answers1

2

It looks like you are compiling manually via javac

Change the working folder to the root folder where your files are, not substitutiva and use javac substitutiva/Stakeholders.java command for compile

Nick
  • 3,691
  • 18
  • 36