ArrayList <Court>не может быть преобразован в суд - PullRequest
0 голосов
/ 29 октября 2019

Так что я уверен, почему я получаю эту ошибку. В моем классе courtController он возвращает тип ArrayList. Вместе с другим моим классом я пытаюсь хранить этот же тип. Я не знаю, почему они не будут работать. Они оба относятся к одному и тому же классу одного типа. Единственное, что отличается - это объект CourtDAO. Но я не храню это, поскольку я возвращаю тип данных Суда.

public static ArrayList<Court> getCourtInfo(DatabaseConnection databaseConnection) {
        ArrayList<Court> court = new ArrayList();

        PreparedStatement ps = null;
        String sql = null;
        Connection conn = null;

        try {
            conn = ConnectionUtils.getConnection(databaseConnection);

            sql = "SELECT * FROM `court` order by courtType";

            ps = conn.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                // It is possible to get the columns via name
                // also possible to get the columns via the column number
                // which starts at 1

                // e.g. resultSet.getString(2);
                Court courtInfo = new Court();
                courtInfo.setCourtNumber(rs.getInt("courtNumber"));
                courtInfo.setCourtName(rs.getString("courtName"));
                courtInfo.setCourtType(rs.getInt("courtType"));
                System.out.println("Found court info=" + courtInfo);
                court.add(courtInfo);
            }
        } catch (Exception e) {
            String errorMessage = e.getMessage();
            e.printStackTrace();
        } finally {
            DbUtils.close(ps, conn);
        }

        return court;

    }
@RequestMapping("/court/export")
    public String CourtWriteToFile() {
        try {
            //Create the path directory
            Files.createDirectories(Paths.get(PATH));
        } catch (IOException ex) {
            Logger.getLogger(CourtController.class.getName()).log(Level.SEVERE, null, ex);
        }
        ArrayList<Court> arrayCourt = new ArrayList();

        CourtDAO newCourt = new CourtDAO();
        ***//This is what is giving me the error of incompatible types***
        arrayCourt.add(CourtDAO.getCourtInfo((DatabaseConnection) conn));


        //Also write to the file when a new camper was added!!
        BufferedWriter bw = null;
        FileWriter fw = null;

        try {
            fw = new FileWriter(FILE_NAME, true);
            bw = new BufferedWriter(fw);

            String jsonString = getJson(newCourt);
            //bjm 20190917 Adding line break 
            bw.write(jsonString + System.lineSeparator());

            System.out.println("Done");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (bw != null) {
                    bw.close();
                }

                if (fw != null) {
                    fw.close();
                }

            } catch (IOException ex) {

                ex.printStackTrace();

            }

        }
        return "users/list";
    }

Это второй кусок кода, в котором говорится, что есть несовместимые типы.

1 Ответ

0 голосов
/ 29 октября 2019

getCourtInfo не возвращает Court, возвращается ArrayList<Court>.

Возможно, вы хотите arrayCourt = CourtDAO.getCourtInfo((DatabaseConnection) conn);

...