IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Classe accessible seulement aux packages fils (avec friendly?)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Par défaut Classe accessible seulement aux packages fils (avec friendly?)
    Bonjour à tous,

    Je vous explique rapidement mon architecture.

    J'ai une classe de definitions qui se trouve dans mon package com.p@tou.Helpers

    Cette classe est pour le moment public et est utilisée par différents packages com.p@tou.package1 et com.p@tou.package2.

    Cependant en laissant cette classe public n'importe quelle autre classe pourrait utiliser ces defs et je voudrais qu'elles restent transparentes.

    J'aimerais donc que cette classe ne soit accessible que par les classes com.p@tou.package1.class1, com.p@tou.package1.class2 et com.p@tou.package2.class1 (par exemple).

    J'ai donc passé ma classe en friendly plutôt qu'en public et déplacer la classe dans com.p@tou mais ça ne marche pas.

    J'ai une erreur impossible d'accéder à la classe en dehors du package. Alors que c'est un package au dessus de ceux à partir desquels j'essaie d'y accéder.

    Est ce que quelqu'un aurait une idée de comment je pourrais faire ?

    Merci beaucoup

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Malheureusement ce n'est pas encore possible !
    C'est une des grosse limitations des visibilités de Java : les visibilités public et protected sont trop visible, tandis que les visibilités package et private sont trop restreinte...


    Cela devrait être corrigé dans Java 7 avec la notion de module... mais pour le moment il n'y a pas vraiment de solution...


    a++

    PS : évites les arobases dans les noms de packages
    PS(2): la visibilité "friendly" n'existe pas

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Je ne suis pas sur de comprendre ce que tu essaies de faire quand tu parles de "passer ta classe en friendly".

    friend est un mot clé C++ qui n'existe malheureusement pas en java.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Par défaut
    Merci adiGuba c'est exactement ce que je voulais savoir et c'est ce à quoi je m'attendais :s

    PS : évites les arobases dans les noms de packages
    Oui c'était pour éviter de mettre le nom de la société.

    PS(2): la visibilité "friendly" n'existe pas
    Oui mais comme je ne connaissais pas le nom de la visibilité par défaut (apparemment package ) j'ai mis ça par mimétisme avec le C++. Désolé

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. connecter à la base Access seulement avec son poste
    Par omarnigth dans le forum Sécurité
    Réponses: 5
    Dernier message: 31/03/2012, 22h01
  2. Réponses: 4
    Dernier message: 01/02/2012, 21h08
  3. Package Jar avec source et classes
    Par speyron dans le forum Maven
    Réponses: 3
    Dernier message: 18/08/2008, 11h05
  4. [Access] Nom d'une table avec un espace dans SQL
    Par Corsaire dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/04/2006, 15h50
  5. Réponses: 4
    Dernier message: 23/06/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo