Mancata visibilità di metodi di una classe

di il
6 risposte

Mancata visibilità di metodi di una classe

Ho un problema quasi incomprensibile.

Ho fatto la definizione delle property di una classe con i costruttori in un package dedicato alla definizione delle classi relative alle tabelle del mio data base.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package esempio.Entities;

/**
 *
 * @author mison
 */
public class Anadip {
   
    // private long matricola;
    private long matricola;
    private String cognome;
    private String nome;
    private long titolo;
    private String username;
    private String password;

    public long getMatricola() {
        return matricola;
    }

    public void setMatricola(long matricola) {
        this.matricola = matricola;
    }

 
    
    public String getCognome() {
        return cognome;
    }

    public void setCognome(String cognome) {
        this.cognome = cognome;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public long getTitolo() {
        return titolo;
    }

    public void setTitolo(long titolo) {
        this.titolo = titolo;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    
   
     
      public Anadip() {
      super();
      // TODO Auto-generated constructor stub
   }


   public Anadip(long matricola, String cognome, String nome, long titolo, String username, String password) {
      this.matricola = matricola;
      this.cognome = cognome;
      this.nome = nome;
      this.titolo = titolo;
      this.username = username;
      this.password = password;

   }

      public Anadip(long matricola, String cognome, String nome, String username, String password) {
      this.matricola = matricola;
      this.cognome = cognome;
      this.nome = nome;
      this.username = username;
      this.password = password;

   }
   
         
   //  controlli di correttezza dati
   
   
   public boolean isValidMatricola()
   {
        return this.matricola > 0;
  
   } 
   
   public boolean isValidCognome()
   {
       return this.cognome != null && this.cognome.trim().length() > 0;
   }
   
   public boolean isValidNome()
   {
       return this.nome != null && this.nome.trim().length() >0;
   }
   
   public boolean isValid()
   {
       return isValidMatricola() && isValidCognome() && isValidNome();
   }
      
}


Ho fatto poi una jFrame che per poter visualizzare i dati salvati nella classe.

nella JFrame "Elenco" facco la import della classe con la definizione della classe dati "Anadip"

import java.awt.Color;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;

import java.util.*;  

import java.sql.SQLException;

import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import esempio.Entities.Anadip;       <------------------   Importo la classe anadip

all'interno della JFrame ho un modulo per il popolamento della tabella ma non vedo i costruttori quando faccio la new di Anadip

   private ArrayList creaListaAnadip()
        {
            ArrayList<Anadip> lista = new ArrayList<Anadip>();
            lista = null;
            
          if(connString == null)
          {
              RigaMessaggio.setText("Manca Stringa di connessione");
              return lista;
          }
            conn =  ConnOleDb(connString);
        
            int nrec = 0;
           
               try
        {
           
                st = conn.createStatement();
               
                strsql = "Select * from Anadip";
                pst = conn.prepareStatement(strsql);
                rs=pst.executeQuery();
                while (rs.next())
                                      
                    nrec++;
                    if(nrec == 1)
                    {
 //                       ImpostaParametriTabella(conn,strsql);  
                    }
 
                    
                     Anadip ana = new Anadip(rs.getLong("matricola"), rs.getString("cognome"), rs.getString("nome"), rs.getString("username"), rs.getString("password")); 
                     
                     //  non vedo i costruttori per l'istanza della classe 
                     
               
                    lista.add(ana);
                  
                rs.close();
                rs = null;
                st.close();
                st = null;
                conn.close();
                conn = null;   
  

        }
               catch(Exception e)
        {
            JOptionPane.showMessageDialog(null,  e);
           // System.out.println("Errore generico in Connessione");
        } 
          return lista;
    }

quando faccio la "Anadip ana = new Anadip(......" non vedo i costruttori.
Perchè ?


Grazie
Moreno

6 Risposte

  • Re: Mancata visibilità di metodi di una classe

    misonsan ha scritto:


    quando faccio la "Anadip ana = new Anadip(......" non vedo i costruttori.
    Perchè ?
    E quale errore ti viene segnalato?
  • Re: Mancata visibilità di metodi di una classe

    Ciao Andrea

    Non compare nessun errore, solo non vengono visualizzati i costruttori per l'istanza della classe.

    facendo la new devo poter istanziare una classe Anadip inserendo i parametri
     
     Anadip ana = new Anadip(rs.getLong("matricola"), rs.getString("cognome"), rs.getString("nome"), rs.getString("username"), rs.getString("password")); 
     
    come definito dalla classe
    
    
      public Anadip(long matricola, String cognome, String nome, long titolo, String username, String password) {
          this.matricola = matricola;
          this.cognome = cognome;
          this.nome = nome;
          this.titolo = titolo;
          this.username = username;
          this.password = password;
    
       }
    
          public Anadip(long matricola, String cognome, String nome, String username, String password) {
          this.matricola = matricola;
          this.cognome = cognome;
          this.nome = nome;
          this.username = username;
          this.password = password;
    
       }
       
    
    
    Grazie

    Moreno
  • Re: Mancata visibilità di metodi di una classe

    misonsan ha scritto:


    solo non vengono visualizzati i costruttori per l'istanza della classe.
    Non vengono visualizzati .. DOVE? Dove ti aspetti che si vedano? Intendi il "autocompletamento"? .. dipende dal IDE e da come è configurato.
  • Re: Mancata visibilità di metodi di una classe

    Ciao Andrea

    Non vengono visualizzati .. DOVE? Dove ti aspetti che si vedano? Intendi il "autocompletamento"? .. dipende dal IDE e da come è configurato.
    Hai centrato l'obiettivo.
    Mi riferivo esattamente a questo e mi scuso per essermi espresso non in maniera corretta magari creando dubbi interpretativi.

    Come posso risolvere ?

    grazie

    Moreno
  • Re: Mancata visibilità di metodi di una classe

    misonsan ha scritto:


    Mi riferivo esattamente a questo e mi scuso per essermi espresso non in maniera corretta magari creando dubbi interpretativi.

    Come posso risolvere ?
    Ma dipende da cosa ti aspetti!! Io con Eclipse se scrivo es.

    new JTextArea

    e poi subito dopo premo CTRL+Spazio mi appare un popup con la lista di tutti i costruttori di JTextArea da cui posso scegliere.

    E' questo che ti aspetti? Non è questo che ti aspetti?
  • Re: Mancata visibilità di metodi di una classe

    Esattamente quello ceh vorrei.

    Probabilmente sbaglio a operare e non faccio CTRL+Spazio.
    Devo fare mente locale o riprovare.

    Ero abituato in un altro IDE dove mi veniva vissualizzato il promt con i comandi sucessivi senza fare CTRL+Invio.

    Grazie e scusa
Devi accedere o registrarti per scrivere nel forum
6 risposte