En Java, nous pouvons utiliser instanceOf mot-clé pour vérifier la relation isA. Mais est-il possible de vérifier la relation hasA aussi?Est-il possible en java de vérifier has-a-relation?
Répondre
Si vous écrivez votre propre méthode pour le faire.
public class Human {
private Human parent;
..
public boolean hasParent() {
return parent!=null;
}
}
@PJP et @Scharrels, je suppose que cela va marcher pour moi. –
Je suppose que vous pouvez le faire avec réflexion, mais je ne vois pas comment ce serait une chose utile à faire dans le contexte de Java. Java est conçu pour être un langage de programmation, pas un langage de modélisation d'objet.
EDIT - Je suppose que vous voulez faire cela à un niveau linguistique ... plutôt que de simplement coder tout un tas de méthodes 'hasA'.
Les constructions d'association/d'agrégation simples ne sont pas des éléments de langage, vous les écrivez dans le code de programme. Donc, vous écrivez les méthodes de vérification aussi.
Voulez-vous dire que vous voulez vérifier si un objet a une propriété d'un type particulier? Il n'y a pas de façon intégrée de le faire - il faudrait utiliser la réflexion.
Une alternative consiste à définir une interface qui a la propriété appropriée - puis de vérifier si l'objet implémente cette interface en utilisant instanceof
.
Pourquoi voulez-vous faire cela? Est-ce seulement de la spéculation, ou avez-vous un problème spécifique en tête? S'il s'agit de la dernière, veuillez préciser: il pourrait bien y avoir une meilleure façon d'aborder la tâche.
en fait, il sera «bon d'avoir» des fonctionnalités. Le point est, supposons que vous voulez exécuter une méthode si le classage a l'objet de Class1 alors vous pouvez le faire facilement s'il y a un mot clé 'ayant' comme 'instanceOf'. Bien que je sois satisfait de la réponse de PJP et Scharrels. –
Je ne peux pas dire que je suis d'accord que ce serait "bon à avoir" pour le moment. Vous devez me montrer un exemple concret où c'est le design le plus élégant * et * où une fonctionnalité de langue supplémentaire le rendrait meilleur. –
relation Le Hasa est souvent modélisé comme une variable privée dans une classe:
Public class AClass {
private AnotherClass reference;
public AClass() {
reference = null;
}
public boolean hasAnotherClass(){
return reference != null;
}
// getters and setters are left out for readability
}
Vous pouvez visualiser et modifier la référence à l'aide d'un getter et un setter. Vous pouvez vérifier la relation en utilisant la méthode hasAnotherClass().
- 1. vérifier fichier existe java
- 2. Est-ce possible de faire avec des images en java?
- 3. Comment vérifier si un Socket est actuellement connecté en Java?
- 4. Cadre pour vérifier XSD avec XML en Java
- 5. Vérifier que Java est présent avant l'installation
- 6. Vérifier si un fichier est verrouillé en Java
- 7. Interaction Java/C# Kerberos possible?
- 8. est-il possible d'avoir une communication InterProcess en Java?
- 9. Est-il possible d'écrire une méthode d'échange en Java?
- 10. Un bon moyen de vérifier les appels Java Reflection?
- 11. Création de types Nullables en java
- 12. Est-il possible de nommer une variable en utilisant une variable en Java?
- 13. Comment vérifier en Java en utilisant JIntegra si l'objet COM implémente une interface?
- 14. est-ce possible en C++?
- 15. Comment vérifier si l'élément de tableau est null pour éviter NullPointerException en Java
- 16. Valider l'URL en Java
- 17. Outils de couverture de code en Java
- 18. Est-il possible en Java de se connecter * chaque * interruption de thread?
- 19. Conversion de Java en C#
- 20. vérifier que le compilateur produit le code Java 1.5
- 21. Comment vérifier si un caractère Java est un symbole monétaire
- 22. Est-il possible de détecter si une classe est disponible en Java?
- 23. La gestion des ressources de type C++ est-elle possible en Java?
- 24. Est-il possible de fusionner des énumérations Java (comme Bitwise en C#)?
- 25. Est-il possible de recompiler un seul fichier Java .java sans avoir le projet entier?
- 26. Est-il possible de vérifier si un flux de fichier est ouvert dans Rails?
- 27. Asp.net est-il possible de vérifier page_load un événement de clic est déclenché?
- 28. résultat possible en C#
- 29. Comment vérifier si JavaScript est activé dans le navigateur client en utilisant le code Java
- 30. Convertisseur Java en C#
vous devez définir "hasA" un peu plus clairement - ce n'est pas clair dans quel contexte vous voulez dire - ce pourrait être la modélisation "hasA", ou il se pourrait que l'objet "hasA". Qu'en est-il du code pseudo ou du code réel? – Chii