Possibilité d'obliger type de donnée retournée
Bonjour
La question que je me pose est simple.
En java il y a les interfaces qui sont utilisées pour obliger les classes qui les implémentent à posséder certaines méthodes avec certaines signatures et types de données retournées.
Je suis en train de développer une classe qui contient plusieurs méthodes. Je voudrait faire en sorte que toutes ces méthodes ne puissent retourner que des objets de type String. Si il y a une méthode qui retourne un int par exemple, la classe ne compilerait pas.
Est-ce possible de faire ceci mais sans avoir recours aux interfaces vu que si je veux créer de nouvelles méthodes je ne veux pas de restrictions à par celle ci (du type de retour)?
merci
demande d'aide svp pour un projet de java
Réalisation d'un détecteur d'Entités Nommées
Dans le domaine du Traitement Automatique des Langues pour la Recherche d'Information, la détection et le typage d'Entités Nommées constitue une tâche classique, pour laquelle des techniques tant symboliques (règles) que statistiques, voire mixtes, ont été développées. Dans le cadre de cet exercice, il vous est demandé de réaliser un module logiciel dénommé "Gazetteer", assurant principalement les fonctionnalités suivantes :
•identification d'Entités Nommées
◦par consultation d'un lexique
◦par application de cascades d'expressions régulières
•typage d'Entités Nommées
◦par consultation d'un lexique
◦par application de cascades d'expressions régulières.
Les deux fonctionnalités ci-dessus seront en réalité réalisées de manière conjointe, bien que pour des raisons de présentation elles soient ici distinguées.
En sus de ces fonctionnalités, le composant assurera les fonctionnalités suivantes :
•ouverture d'un fichier texte ;
•segmentation en unités linguistiques de base, dont vous déterminerez le type : paragraphes, phrases, mots graphiques, mots composés ;
•écriture de fichier texte structuré en XML, associé à une feuille de style CSS fournie.
Vous trouverez ci-dessous un schéma synthétique des traitements, ainsi que des exemples d'annotation automatique. Afin de réaliser ce module (dont vous élaborerez la structuration par vous-mêmes), une liste des entreprises du CAC40 ainsi que des dépêches de test, dans différents jeux d'encodage, vous seront fournies. D'autres ressources vous seront fournies afin, notamment, d'assurer une visualisation conviviale du fichier de sortie.
Dans le schéma ci-dessous, les composants à réaliser figurent en bleu, les composants et ressources fournis ne sont pas colorés.
L'ordre des traitements vous indique la logique générale des traitements à adopter pour un résultat optimal. Notamment, il est préférable de réaliser l'identification/typage des Entités Nommées "sûres" avant les autres, autrement dit de réaliser en premier l'annotation par consultation d'un lexique, avant celle par cascades d'expressions régulières.
Enfin, les deux flèches bidirectionnelles en bleu figurent les fonctions :
•de consultation des entrées du lexique et de récupération des annotations qui y figurent ;
•d'application des règles de détection et de typage exprimées par des expressions régulières.
Dans l'ensemble de votre réalisation, vous devrez vous efforcer d'adopter une logique de conception et d'implémentation mettant l'accent sur la modularité : vos classes doivent être le plus possible spécialisées, ainsi que vos méthodes (un traitement/une méthode). Pas de programme "monolithique", dont toutes les fonctionnalités sont codées dans une seule fonction "main" !
Vous prendrez soin de fournir les éléments de documentation suivants :
•un fichier README de base, explicitant en quelques lignes le but du programme, ainsi que les options et commandes ;
•un fichier openoffice explicitant vos choix de conception et d'implémentation, et présentant de façon synthétique les différentes fonctionnalités ;
•une javadoc explicitant le plus possible la signature des méthodes (nombre et type des arguments), leur valeur de retour et les fonctionnalités de chaque classe ; pour ce faire, vous intègrerez autant de commentaires javadoc (@param etc.) que nécessaire.
Vous n'oublierez pas de faire figurer dans l'en-tête de vos classes votre nom, la date de création, ainsi que la version de chaque classe. Vous adopterez la convention suivante, en termes de version :
•1.0 et supérieures : classe mature ;
•0.1 : classe en version expérimentale (alpha) ;
•0.5 et supérieures jusqu'à 0.9 : classe non mature mais que vous estimez suffisamment fiable.
Ces numéros de version sont indicatifs, ils sont à considérer comme des éléments de documentation que vous associez à chacune des classes. Ils présupposent, bien sûr, que vous aurez réalisé des tests afin d'évaluer le degré de maturité de vos classes.