В java мы можем использовать instanceOf ключевое слово, чтобы проверить отношения isA. Но можно ли также проверить hasA-отношения?Возможно ли в java проверить наличие отношений?
ответ
Если вы напишете свой собственный метод для этого.
public class Human {
private Human parent;
..
public boolean hasParent() {
return parent!=null;
}
}
@PJP и @Scharrels, я думаю, это сработает для меня. –
Я полагаю, что вы могли бы сделать это с отражением, но я не могу видеть, как это было бы полезно, что нужно сделать в контексте Java. Java разработан как язык программирования, а не язык моделирования объектов.
EDIT - Я предполагаю, что вы хотите сделать это на лингвистическом уровне ... а не просто кодировать целую кучу методов hasA.
Простые ассоциации/агрегационные конструкции не являются языковыми элементами, вы пишете их в программном коде. Таким образом, вы также пишете методы проверки.
Вы хотите сказать, хотите ли вы иметь объект определенного типа? Нет никакого встроенного способа сделать это - вам придется использовать отражение.
Альтернативой является определение интерфейса, который имеет соответствующее свойство, - тогда проверьте, реализует ли этот объект этот интерфейс, используя instanceof
.
Почему вы хотите это сделать? Это просто спекуляция, или у вас есть конкретная проблема? Если это последний, пожалуйста, уточните: может быть, есть лучший способ приблизиться к задаче.
На самом деле это будет «хорошо иметь» функциональность. Дело в том, что вы хотите выполнить какой-либо метод, если в классе есть объект Class1, тогда вы можете сделать это легко, если есть ключевое слово «иметь», как «instanceOf». Хотя я доволен ответом PJP и Scharrels. –
Я не могу сказать, что согласен, что на данный момент «хорошо иметь». Вы должны показать мне конкретный пример, где это самый элегантный дизайн * и *, где дополнительная языковая функция улучшит его. –
отношение обладает А часто моделируются как частные переменной в классе:
Public class AClass {
private AnotherClass reference;
public AClass() {
reference = null;
}
public boolean hasAnotherClass(){
return reference != null;
}
// getters and setters are left out for readability
}
Вы можете просмотреть и изменить ссылку, используя геттер и сеттер. Вы можете проверить отношение, используя метод hasAnotherClass().
- 1. Есть ли простой способ проверить наличие отношений HABTM?
- 2. Проверить наличие услуг от java
- 3. Возможно наличие двух разных внешних ключей в модели отношений AR
- 4. Можно ли проверить наличие переменной в C#?
- 5. Как проверить наличие интернет-соединения в java?
- 6. Можно ли проверить наличие переменных?
- 7. Основные данные: как проверить наличие отношений Many to Many
- 8. Проверить наличие новых файлов в цикле - java
- 9. Проверить наличие подписок
- 10. Может ли PMD проверить наличие файла?
- 11. Проверить наличие записей в MYSQL
- 12. Проверить наличие SQLITE DB
- 13. Проверить на наличие интернета
- 14. JAVA - Проверить наличие ближайшего объекта на панели
- 15. Есть ли общий способ проверить наличие GIL?
- 16. Можно ли проверить gnu на наличие файлов?
- 17. Проверить наличие хромированных расширений
- 18. Можно ли проверить наличие таблицы SQLite.
- 19. Нужно ли «закрыть FILEHANDLE» проверить наличие ошибок?
- 20. Rails: Могу ли я проверить наличие кнопки_to?
- 21. проверить наличие собственности
- 22. Возможно ли иметь разрешения на основе отношений?
- 23. Как проверить наличие файла
- 24. Проверить наличие недействительных триггеров
- 25. Проверить наличие обновлений
- 26. Проверить наличие params в Grape
- 27. Есть ли способ проверить наличие недопустимой памяти?
- 28. Проверить наличие нескольких параметров
- 29. Cocoa Проверить наличие обновлений
- 30. Проверить наличие стороннего приложения
Вы должны определить «hasA» немного более четко - его непонятно, какой контекст вы имеете в виду - это может быть модельное «hasA», или может быть, что объект «hasA». Как насчет какого-нибудь кода psuedo или фактического кода? – Chii