Erreur "cannot find symbol"
loulouplume
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai une erreur dans mon programme et je ne comprend pas d'où ça vient.
Voici la ligne de code sur laquelle l'erreur se pose (ligne en gras):
Erreur annoncée par Netbeans : "cannot find symbol". Et lorsque je clique sur le code qui pose problème, l'erreur change (petite ampoule rouge et non hexagone rouge) et affiche "Invert if"
Voici l'ensemble de mon code :
J'ai une erreur dans mon programme et je ne comprend pas d'où ça vient.
Voici la ligne de code sur laquelle l'erreur se pose (ligne en gras):
if(!pu.getLog().contains(user.getNom()))
Erreur annoncée par Netbeans : "cannot find symbol". Et lorsque je clique sur le code qui pose problème, l'erreur change (petite ampoule rouge et non hexagone rouge) et affiche "Invert if"
Voici l'ensemble de mon code :
package Serveur; /* * 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. */ /** * * @author Lise GUEZENNEC */ import Client.PopUp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.ArrayList; import Commun.Paquet; public class Thread { private DatagramSocket ds; private ArrayList<Paquet> clients; private PopUp pu; // Constructeur par défaut public Thread() { } // Constructeur avec des parametres public Thread(DatagramSocket ds, ArrayList<Paquet> client, PopUp pu) { this.ds = ds; this.clients = client; this.pu = pu; } // Creation d'un nouveau client public Paquet connectionClient(InetAddress ip, int port) { for (Paquet client : clients) { if (client.getPort() == port && ip.equals(client.getIp())) { return client; } } return null; } // Creation d'une liste de clients public String clientConnecte() { String listeClient = "2"; for (Paquet client : clients) { listeClient = listeClient + "#" + client.getIp().toString().substring(1) + "#" + client.getPort() + "#" + client.getNom(); } return listeClient; } // Lancement du Thread public void run() { try { // boolean actif = true; byte[] msg = new byte[256]; DatagramPacket dp = new DatagramPacket(msg, msg.length); int i, port; InetAddress ip; Paquet exist; String entree, message, paquet, ip_client_destination, port_client_destination; // Reception des informations envoyees par le client do { paquet = message = ip_client_destination = port_client_destination = ""; ds.receive(dp); port = dp.getPort(); ip = dp.getAddress(); entree = new String(dp.getData(), 0, dp.getLength()); paquet = entree; switch (paquet.substring(0, 2)) { // Si le paquet commence par la marque "1#", alors il s'agit d'une nouvelle connexion case "1#": exist = connectionClient(ip, port); if (exist == null) { Paquet user = new Paquet(); user.setIp(ip); user.setNom(paquet.substring(2)); user.setPort(port); clients.add(user); message = clientConnecte(); // Vérification du pseudo du client // S'il n'est pas deja dans la liste des pseudos actuellement connectes, alors le pseudo est accepte et le client est connecte if(!pu.getLog().contains(user.getNom())) { pu.setPaquet(message); pu.updateClientsEnLigne(); for (int j = 0; j < clients.size(); j++) { DatagramPacket pkgo = new DatagramPacket(message.getBytes(), message.getBytes().length, clients.get(j).getIp(), clients.get(j).getPort()); ds.send(pkgo); } } // Si le pseudo est deja utilise > Affichage d'un message de marque "8#" au client en question pour lui demander de choisir un autre pseudo else { message = "8#"; DatagramPacket pkgo = new DatagramPacket(message.getBytes(), message.getBytes().length, user.getIp(), user.getPort()); ds.send(pkgo); } } break; // Si le paquet commence par la marque "5#" > Deconnexion case "5#": exist = connectionClient(ip, port); if (exist != null) { clients.remove(exist); message = clientConnecte(); pu.setPaquet(message); pu.updateClientsEnLigne(); for (int j = 0; j < clients.size(); j++) { DatagramPacket pkgo = new DatagramPacket(message.getBytes(), message.getBytes().length, clients.get(j).getIp(), clients.get(j).getPort()); ds.send(pkgo); } } break; // Si le paquet commence par la marque "3#" > Nouveau message envoye par un client case "3#": i = 2; while (!("#".equals(paquet.substring(i, i + 1))) && (i < paquet.length())) { ip_client_destination = ip_client_destination + paquet.substring(i, i + 1); i++; } i++; while (!("#".equals(paquet.substring(i, i + 1))) && (i < paquet.length())) { port_client_destination = port_client_destination + paquet.substring(i, i + 1); i++; } i++; // Message envoye message = "4#" + ip.toString().substring(1) + "#" + port + "#" + paquet.substring(i); if ("999.999.999.999".equals(ip_client_destination)) { if ("99999".equals(port_client_destination)) { for (int j = 0; j < clients.size(); j++) { DatagramPacket pkgo = new DatagramPacket(message.getBytes(), message.getBytes().length, clients.get(j).getIp(), clients.get(j).getPort()); ds.send(pkgo); } } } else { InetAddress ip_destino = InetAddress.getByName(ip_client_destination); DatagramPacket pkgo = new DatagramPacket(message.getBytes(), message.getBytes().length, ip_destino, Integer.parseInt(port_client_destination)); ds.send(pkgo); } break; default: message = "aucun"; DatagramPacket pkgo = new DatagramPacket(message.getBytes(), message.getBytes().length, ip, port); ds.send(pkgo); } } while (true); } catch (IOException | NumberFormatException e) { System.out.println("Une exception est survenue : " + e.getMessage()); } } void start() { } String clientConnectes() { return null; } }
A voir également:
- Erreur "cannot find symbol"
- Find and mount - Télécharger - Récupération de données
- Erreur t32 ✓ - Forum Livebox
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 0x80070643 - Accueil - Windows
- Find vba - Astuces et Solutions
3 réponses
Fausse manipulation : je n'ai pas fini ma phrase...
Si quelqu'un pourrait m'aider, je lui en serait grandement reconnaissante car j'ai beau chercher, je ne comprend pas mon erreur...
Merci d'avance.
Si quelqu'un pourrait m'aider, je lui en serait grandement reconnaissante car j'ai beau chercher, je ne comprend pas mon erreur...
Merci d'avance.
Bonjour,
Sans le reste de ton code c'est difficile de dire exactement ce qu'il manque dans les autres classes que l'on ne voit pas.
Mais a priori il te manquerait la méthode
Sans le reste de ton code c'est difficile de dire exactement ce qu'il manque dans les autres classes que l'on ne voit pas.
Mais a priori il te manquerait la méthode
public ArrayList<Paquet> getLog()dans la classe Paquet.
Du coup, cela signifie que tu ne gère pas une liste mais un élément unique, ce qui est en contradiction avec le commentaire que tu avais mis...
// S'il n'est pas deja dans la liste des pseudos actuellement connectes, alors le pseudo est accepte et le client est connecte if(!pu.getLog().contains(user.getNom()))