Я пытаюсь (для школьной лаборатории) создать программу, которая пока покажет элементы в массиве (мы используем JGrasp в качестве нашей среды разработки, это обязательная часть, поскольку он требует проектов, которые он делает). Для этого требуется пять классов: суперкласс для Employee, два подкласса, определяющие типы сотрудников, метод тестирования (UseCompany) и класс FileIO.ArrayList Array Тип несоответствия
import java.util.*;
public class UseCompany {
public static void main(String[] args) {
System.out.print("Hello");
SalesMan man1 = new SalesMan("John Doe", 12345);
Technician tech1 = new Technician("Jane Doe", 12346);
ArrayList<Employee> company = new ArrayList<Employee>();
company.add(man1);
company.add(tech1);
SalesMan man2 = new SalesMan(1500.00, "Steelport", "Johnny Gat", 14432);
Technician tech2 = new Technician(5, "IT Support", "Kinzie Kensington", 10000);
company.add(man2);
company.add(tech2);
Collections.sort(company);
ArrayList<Employee> temp = company;
FileIO.displayArray(temp); //Line 19, the problem point.
}
}
Это метод тестирования, и это
public static void displayArray(ArrayList<Employee> list) //Displays array one line at a time
{ //Specialized for Employee class
for (int i=0;i<list.size();i++)
{
if((list.get(i)).getType() == 'T')
{
System.out.println("Name: " + (list.get(i)).getName() + "\tNo.: " + (list.get(i)).getNumber() + "\tType: Technician\tDepartment: " + ((Technician)(list.get(i))).getDepartment() + "\tClearance Level: " + ((Technician)(list.get(i))).getLevel());
}
else if((list.get(i)).getType() == 'S')
{
System.out.println("Name: " + (list.get(i)).getName() + "\tNo.: " + (list.get(i)).getNumber() + "\tType: Salesperson\tTerritory: " + ((SalesMan)(list.get(i))).getTerritory() + "\tTarget: " +((SalesMan)(list.get(i))).formattedTarget());
}
}
}
ли метод FileIO, который должен отображать строки.
Проблема у меня в том, что в то время как он компилирует нормально, это дает ошибку
UseCompany.java:19: error: incompatible types: List cannot be converted to ArrayList[]
Когда я пытаюсь запустить его в jgrasp, указывая на (темп). У нас с учителем были трещины в нем, и он ничего не мог с этим сделать (он добавил временные вещи).
Однако, если я запустил его в командной строке, используя бит, созданный для компиляции и запуска, он работает просто отлично! Может ли кто-нибудь дать советы о том, почему я получаю эту ошибку в JGrasp, и, возможно, как ее исправить, чтобы я мог продолжить работу над ней?
/**
* This is the superclass Employee.
* It contains the general information for SalesMan and Technician
*/
import java.io.*;
public class Employee implements Comparable, Serializable
{
private String name; // Name of employee
private int number; // Employee number of employee
char typeCode; // What kind of employee is it
/**
* Constructor to create the superclass
* @param nom Name of the employee
* @param number Employee number
*/
public Employee(String nom, int number)
{
name = nom;
this.number = number;
}
public char getType()
{
return typeCode;
}
public int getNumber()
{
return number;
}
public String getName()
{
return name;
}
/**
* compareTo method for comparison of objects
* @param Employee object
* @return An integer to indicate comparison
*/
public int compareTo(Object o)
{
//Compare code
return name.compareTo(((Employee)o).name);
}
/** toString method for printing */
public String toString()
{
String employeeNum = Integer.toString(number);
String str = new String("Name: " + name + "\nEmployee Number: " + employeeNum);
return str;
}
}
Для информации: техник добавляет частный уровень ИНТА, частный отдел струнного, добытчик, и ToString Salesman добавляет частную двойную цель, частную струнный территории, добытчик, и ToString
Edit: Для некоторых Разумеется, даже после удаления всех аргументов как вызова, так и реализации метода displayArray и комментирования всего его содержимого, кажется, требуются данные типа ArrayList [], указывающие на ошибку в точке между FileIO и displayArray()
FINAL EDIT: Спасибо, Fildor. Как оказалось, удаление файла проекта и его переделка были, по сути, решением. Сейчас все работает отлично. я хочу или я, или мой учитель понял это прошлой ночью в лаборатории ...
_while он компилируется отлично, он дает ошибку_ Это утверждение противоречиво. –
Можете ли вы пометить строку 19 в UseCompany, пожалуйста? – Fildor
Итак, jgrasp думает, что есть ошибка, но javac нет? – Teepeemm