这两个类都在同一个包中,所以我很困惑为什么它不起作用。它确实可以在netbeans中工作,但是我现在正在使用Visual Studio Code。我将包括代码和得到的错误。

部门类别(包含主要方法)

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;
    }

}


战斗机类(编译时无法识别)

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;
    }

}


错误信息:

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.

最佳答案

我看到的第一个错误是构造函数需要权重类参数,但是当您使用Fighter类初始化arraylist时,它将丢失该值。

例如。
fighters.add(new Fighter(“ Conor McGregor”,29,“ Ireland”,21,3));
缺少体重课程。

10-06 12:54