Java appeler une list dans un tab de type objet

deep_sea Messages postés 215 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -

Bonsoir tous le mode ,

je voulais calculer le cumul d'une colonne et l'afficher dans une autre colonne 

j'ai fais une fonction qui sappelle getcumul() qui retourne une la liste des sommes cumulées

la fonction fonctionne parfaitement

 public List<Double> getcumul()
 {
        ////////////////////////////////////////////////mobil//////////////////////////////////////
        String sql_cumul = "select mon  from mobknt where nat='004'and eve='" + num_contrat + "' order by dco";
       try {
           PreparedStatement pst13 = conn.prepareStatement(sql_cumul);
            ResultSet rs12;
           rs12 = pst13.executeQuery();
           while (rs12.next()) {
              listmon.add(rs12.getDouble(1));
                System.out.println("RESULTAT" + (listmon.toString()));
            }

            for (Double d :listmon) {
                sum += d;
              listcum.add(sum);

           System.out.println("RESULTAT FINAL" + (listcum.toString()));

           }
       
 }
       catch(Exception er)
        {
            er.getMessage();
        }
return listcum;
                  
 }

le problème lors de l'appel de la fonction dans un tableau de type objet ,j'ai rencontré une erreur  de comptabilité

ci-aprés le code 

            while (rse.next()) {
                      Object[] enc = {l, getcumul(),new Boolean(false)};
                     
                dt1.addRow(enc);       
                l++;   
                                }

Merci de me donner une solution 

A voir également:

2 réponses

cengokill Messages postés 314 Statut Membre 18
 

Pour résoudre ce problème, vous devriez vérifier les types de données que vous utilisez pour remplir votre tableau d'objets et vous assurer que ceux-ci sont compatibles avec la fonction getcumul() et la méthode addRow() de votre objet dt1.

Il est également possible que vous rencontriez des problèmes avec la requête SQL que vous utilisez dans la fonction getcumul() pour récupérer les données de la base de données. Vous devriez vérifier la syntaxe de cette requête et vous assurer qu'elle s'exécute correctement et renvoie les données attendues.

Enfin, il pourrait y avoir un problème avec la fonction getcumul() elle-même. Vous devriez vérifier son code pour vous assurer qu'elle fonctionne correctement et qu'elle renvoie les résultats attendus.


0
deep_sea Messages postés 215 Statut Membre 1
 

je vous remercie pour votre réponse 

La requête fonctionne correctement elle récupère les montants et les sauvegarde dans un tableau de type double puis je fais la somme cumulée de ses montants  et je les mis dans un autre tableau de type double 

le probléme le tableau de type objet n'accepte pas la fonction qui retourne une liste de type double

quoi faire

1
KX Messages postés 19031 Statut Modérateur 3 020
 

Bonjour,

Java est un langage objet, fortement typé, en général quand on fait un tableau, une liste, etc. c'est pour stocker des données homogènes dedans.

Au lieu de faire un tableau d'objets comme ça :

Object[] enc = {l, getcumul(),new Boolean(false)};

Il faudrait plutôt te créer une classe dédiée, pour stocker chacune de tes trois valeurs dans un attribut. Le plus simple étant de faire un record (Java 14 et +)

https://www.baeldung.com/java-record-keyword


0
deep_sea Messages postés 215 Statut Membre 1
 

j'utilise java 8 !!

0
KX Messages postés 19031 Statut Modérateur 3 020 > deep_sea Messages postés 215 Statut Membre
 

Pas de record alors, mais tu devrais quand même faire une classe.

0