简体   繁体   中英

Cannot find symbol for *class name*? Java

Both classes are in the same package so I'm very confused as to why it isn't working. It does work in netbeans however I am using Visual Studio Code now. I will include the code and the error I get.

Division Class (containing main method)

package project;

import java.util.ArrayList;
import java.util.Scanner;


public class Division
{
    public static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args)
    {


        ArrayList<Fighter> fighters = new ArrayList();

        fighters.add(new Fighter("Conor McGregor", 29, "Ireland", 21, 3));
        fighters.add(new Fighter("Gunnar Nelson", 28, "Iceland", 16, 3));
        fighters.add(new Fighter("Stipe Miocic", 33, "USA", 17, 2));
        fighters.add(new Fighter("Cody Garbrandt", 26, "USA", 11, 0));
        fighters.add(new Fighter("Demetrious Johnson", 30, "USA", 27, 2));
        fighters.add(new Fighter("Jose Aldo", 31, "Brazil", 26, 3));
        fighters.add(new Fighter("George St Pierre", 40, "Canada", 25, 2));
        fighters.add(new Fighter("Fabricio Werdum", 40, "Brazil", 22, 7));
        fighters.add(new Fighter("Michael Bisping", 39, "United Kingdom", 30, 7));


        displayAllFighters(fighters);


    }

    //Adds fighter to ArrayList
    public static void addFighter(ArrayList<Fighter> fighters)
    {
        System.out.print("Please enter fighters name: \t");
        String name = scanner.nextLine();

        System.out.print("\nPlease enter fighters age: \t");
        int age = scanner.nextInt();

        scanner.nextLine();

        System.out.print("\nPlease enter fighters country: \t");
        String country = scanner.nextLine();

        System.out.print("\nPlease enter amount of wins: \t");
        int wins = scanner.nextInt();

        System.out.print("\nPlease enter amount of losses: \t");
        int losses = scanner.nextInt();

        fighters.add(new Fighter(name, age, country, wins, losses));

        System.out.println("Fighter Added!");
    }

    //Removes a fighter from ArrayList
    public static void removeFighter(ArrayList<Fighter> fighters)
    {
        System.out.print("Please enter the name of the fighter you wish to remove: \t");
        String name = scanner.nextLine();

        for (Fighter fighter : fighters)
        {
            if (fighter.getName() == name)
            {
                fighters.remove(fighter);
            }
        }
    }

    //Display info of all fighters
    public static void displayAllFighters(ArrayList<Fighter> fighters)
    {
        for (Fighter fighter : fighters)
        {
            System.out.println(fighter);
            System.out.println("==========================================");
        }
    }

    //Counts amount of fighters with a win % that is less that entered value
    public static int countWinPercentLowerThan(ArrayList<Fighter> fighters , int value)
    {
        int count = 0;

        for (Fighter fighter : fighters)
        {
            if (fighter.getPercent() < value)
            {
                count++;
            }
        }
        return count;
    }

    //Counts amount of fighters with a win % that is greater that entered value
    public static int countWinPercentGreaterThan(ArrayList<Fighter> fighters , int value)
    {
        int count = 0;

        for (Fighter fighter : fighters)
        {
            if (fighter.getPercent() > value)
            {
                count++;
            }
        }
        return count;
    }

}

Fighter Class (which can't be recognized when compiled)

package project;

public class Fighter
{
    private String name;
    private int age;
    private String country;
    private int wins;
    private int losses;
    private String weightClass;

    public Fighter(String name, int age, String country, int wins, int losses, String weightClass)
    {
        this.name = name;
        this.age = age;
        this.country = country;
        this.wins = wins;
        this.losses = losses;
        this.weightClass = weightClass;
    }

    public Fighter(String name)
    {
        this.name = name;
        this.age = 0;
        this.country = "TBA";
        this.wins = 0;
        this.losses = 0;
        this.weightClass = "TBD";
    }

    public String getName()
    {
        return this.name;
    }

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

    public int getAge()
    {
        return this.age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

    public String getCountry()
    {
        return this.country;
    }

    public void setCountry(String country)
    {
        this.country = country;
    }

    public int getWins()
    {
        return this.wins;
    }

    public void setWins(int wins)
    {
        this.wins = wins;
    }

    public int getLosses()
    {
        return this.losses;
    }

    public void setLosses(int losses)
    {
        this.losses = losses;
    }

    public String toString()
    {
        return "Fighter Name: " + this.name + ".\nFighter age: " + this.age + ".\nFighter nation: " + this.country + ".\nFighter wins: " + this.wins + ".\nFighter losses: " + this.losses + ".";
    }

    public void updateWin()
    {
        this.wins++;
    }

    public void updateLosses()
    {
        this.losses++;
    }

    public double getPercent()
    {
        int totalFights = this.wins + this.losses;
        double percent = this.wins * 100/totalFights;
        return percent;
    }

}

Error message:

c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:34: error: cannot find symbol
    public static void addFighter(ArrayList<Fighter> fighters)
                                            ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:59: error: cannot find symbol
    public static void removeFighter(ArrayList<Fighter> fighters)
                                               ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:74: error: cannot find symbol
    public static void displayAllFighters(ArrayList<Fighter> fighters)
                                                    ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:84: error: cannot find symbol
    public static int countWinPercentLowerThan(ArrayList<Fighter> fighters , int value)
                                                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:99: error: cannot find symbol
    public static int countWinPercentGreaterThan(ArrayList<Fighter> fighters , int value)
                                                           ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:15: error: cannot find symbol
        ArrayList<Fighter> fighters = new ArrayList();
                  ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:17: error: cannot find symbol
        fighters.add(new Fighter("Conor McGregor", 29, "Ireland", 21, 3));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:18: error: cannot find symbol
        fighters.add(new Fighter("Gunnar Nelson", 28, "Iceland", 16, 3));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:19: error: cannot find symbol
        fighters.add(new Fighter("Stipe Miocic", 33, "USA", 17, 2));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:20: error: cannot find symbol
        fighters.add(new Fighter("Cody Garbrandt", 26, "USA", 11, 0));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:21: error: cannot find symbol
        fighters.add(new Fighter("Demetrious Johnson", 30, "USA", 27, 2));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:22: error: cannot find symbol
        fighters.add(new Fighter("Jose Aldo", 31, "Brazil", 26, 3));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:23: error: cannot find symbol
        fighters.add(new Fighter("George St Pierre", 40, "Canada", 25, 2));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:24: error: cannot find symbol
        fighters.add(new Fighter("Fabricio Werdum", 40, "Brazil", 22, 7));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:25: error: cannot find symbol
        fighters.add(new Fighter("Michael Bisping", 39, "United Kingdom", 30, 7));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:53: error: cannot find symbol
        fighters.add(new Fighter(name, age, country, wins, losses));
                         ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:64: error: cannot find symbol
        for (Fighter fighter : fighters)
             ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:76: error: cannot find symbol
        for (Fighter fighter : fighters)
             ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:88: error: cannot find symbol
        for (Fighter fighter : fighters)
             ^
  symbol:   class Fighter
  location: class Division
c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java:103: error: cannot find symbol
        for (Fighter fighter : fighters)
             ^
  symbol:   class Fighter
  location: class Division
Note: c:\Users\Cian Tiernan\OneDrive - Dundalk Institute of Technology\College\Object Orientated Programming\NetBeansProjects\Java\src\project\Division.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

The first mistake I see is that the constructor is has weight class parameter required but when you initialize the arraylist with Fighter class, it is missing that value.

eg. fighters.add( new Fighter("Conor McGregor", 29, "Ireland", 21, 3 )); is missing weight class.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM