簡體   English   中英

Java,錯誤,找不到適合add()的方法

[英]Java, error no suitable method found for add()

我需要有關Java問題的幫助,當我編譯它時出現錯誤,並且我已經在其他帖子中查找了,無法解決他們是否可以幫助我,我將非常感激。

import javax.swing.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;

public class Sugestao{
   private int idSugestao;
   private String sugestao;
   private ArrayList<JTextArea> guardaSugestao;

   public Sugestao(){
      guardaSugestao = new ArrayList<>();
   }
   public Sugestao(int idSugestao){
      this.idSugestao = idSugestao;
      guardaSugestao = new ArrayList<>();
   }
   public Sugestao(int idSugestao, String sugestao){
      this.idSugestao = idSugestao;
      this.sugestao = sugestao;
      guardaSugestao = new ArrayList<>();
   }
   public int getIdSugestao(){
      return idSugestao;
   }
   public String getSugestao(){
      return sugestao;
   }
   public ArrayList<JTextArea> guardaSugestao(){
      return guardaSugestao;
   }
   public void setIdSugestao(int idSugestao){
      this.idSugestao = idSugestao;
   }
   public void setSugestao(String sugestao){
      this.sugestao = sugestao;
   }
   public void setGuardaSugestao(ArrayList<JTextArea> guardaSugestao){
      this.guardaSugestao = guardaSugestao;
   }

   public void adicionarSugestao(JTextArea jTextArea){
      guardaSugestao.add(jTextArea);
   }

   public ArrayList<JTextArea> carregaSugestao(Connection conn){
      String sqlSelect = "select id, sugestao from tabelaTeste where id_sugestao = ?";
      ArrayList<JTextArea> listaSugestao = new ArrayList<>();

      try(PreparedStatement stm = conn.prepareStatement(sqlSelect);){
         stm.setInt(1, getIdSugestao());
         try(ResultSet rs = stm.executeQuery();){
            while(rs.next()){
               Sugestao s = new Sugestao();
               s.setIdSugestao(rs.getInt("id_sugestao"));
               s.setSugestao(rs.getString("sugestao")); 
               listaSugestao.add(s); // error
            }
         }
         catch(Exception e){
            e.printStackTrace();
         }
         catch(SQLException e1){
            System.out.print(e1.getStackTrace());
         }
         return listaSugestao;
      }
   }
    public String toString() {
        return "Sugestao [id=" + idSugestao + ", sugestao :" + sugestao + "]";
    }
}

這是出現的錯誤,我不知道如何解決。

error: no suitable method found for add(Sugestao)

由於您的listaSugestao聲明而出現錯誤。 它是JTextArea類型的ArrayList,它僅接受JTextArea對象,並且您嘗試向其添加Sugestao對象。 您需要將ArrayList聲明更改為Sugestao類型的ArrayList。

更改此行:

  ArrayList<JTextArea> listaSugestao = new ArrayList<>();

對此:

  ArrayList<Sugestao> listaSugestao = new ArrayList<>();

在當前代碼中,您的arraylist采用JTextArea類型,因為您已將其聲明為ArrayList<JTextArea> guardaSugestao; 因此,需要將其更改為

ArrayList<Sugestao> guardaSugestao;

以便將Sugestao類型納入列表。

另外,確保你的方法setGuardaSugestao() guardaSugestao() adicionarSugestao()被相應地改變接受ArrayList<Sugestao>

listaSugestao需要類型為JTextArea元素。 但是在listaSugestao.add(s); 您的變量sSugestao類型。

簡單地的類型而改變ArrayList<JTextArea>ArrayList<Sugestao>並且從方法定義public ArrayList<JTextArea> carregaSugestao(Connection conn)public ArrayList<Sugestao> carregaSugestao(Connection conn)和它應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM