javaでは、instanceOfキーワードを使用してisA関係をチェックできます。しかしhasA関係もチェックすることは可能ですか?javaでhas-a関係をチェックすることは可能ですか?
答えて
あなたがそれを行う独自の方法を書くならば。
public class Human {
private Human parent;
..
public boolean hasParent() {
return parent!=null;
}
}
@PJPと@Scharrels、これは私にとってはうまくいくと思います。 –
Reflectionでこれを行うことができますが、これがJavaのコンテキストでどのように役立つかはわかりません。 Javaは、オブジェクトモデリング言語ではなく、プログラミング言語として設計されています。
EDIT - 私は、あなたが言語レベルでこれをしたいと思っています。ただ、たくさんの 'hasA'メソッドをコーディングするよりもむしろ。
プレーンアソシエーション/アグリゲーションコンストラクトは言語要素ではなく、プログラムコードで記述します。だからあなたはチェッカーメソッドも書いています。
オブジェクトに特定のタイプのプロパティがあるかどうかをチェックしますか?これを行うための組み込みの方法はありません。リフレクションを使用する必要があります。
代わりに、関連するプロパティを持つインターフェイスを定義し、次にオブジェクトがinstanceof
を使用してそのインターフェイスを実装しているかどうかを確認します。
なぜこれをやりたいのですか?それはちょうど投機ですか、あるいはあなたは念頭に置いて特別な問題がありますか?後者の場合は、詳しく説明してください:タスクに近づく方が良いかもしれません。
実際にはそれは「良い」機能を持つでしょう。要点は、クラスがClass1のオブジェクトを持っている場合に、いくつかのメソッドを実行したいとします。この場合、 'having'というキーワードが 'instanceOf'と同じように簡単に実行できます。私はPJPとScharrelsの答えに満足していますが。 –
現時点では「持っていれば良い」と私は同意するとは言えません。あなたはこれが最もエレガントなデザイン*と*余分な言語機能によってより良いものになる具体的な例を私に見せなければなりません。 –
HASAの関係は、多くの場合、クラスのプライベート変数としてモデル化されています
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. Java httpServletRequestを関数に送ることは可能ですか?
- 2. SOCI C++データベースアクセスライブラリでテーブル関係を管理することは可能ですか
- 3. 外部依存関係をチェックせずにUSQLプロジェクトを構築することは可能ですか?
- 4. チェック制約を表現することは可能ですか?
- 5. ライブラリの依存関係を無効にすることは可能ですか
- 6. 依存関係を陰にすることは可能ですか?
- 7. Xcode C++コンパイルの依存関係をトレースすることは可能ですか?
- 8. ダブの依存関係の依存関係を指定することは可能ですか?
- 9. VBAでjavaから関数を呼び出すことは可能ですか?
- 10. EclipseでJavaソースファイルをデバッグすることは可能ですか
- 11. Javaでオブジェクトを宣言することは可能ですか?
- 12. PythonとJavaを統合することは可能ですか?
- 13. Javaジェネリックのチェックが外されているキャスト - 実行時にチェックすることは可能ですか?
- 14. タスク依存のSBT依存関係を持つことは可能ですか?
- 15. Javaでメモリスキャナを作ることは可能ですか?
- 16. Java generics - Tをシリアライズ可能にすることは可能ですか?
- 17. は、メソッドのSystem.out.printlnを(チェックすることが可能である)
- 18. Javaコードをグルーヴィースタイルにすることは可能ですか?
- 19. Clojure関数を分解することは可能ですか?
- 20. NSTableViewと多対多の関係でココアバインディングを使用することは可能ですか?
- 21. rpm-specとdebbuildで、常に最新の依存関係をインストールすることは可能ですか?
- 22. JSchemeでJavaクラスを書くことは可能ですか?
- 23. Javaでシェルスクリプトを実行することは可能です
- 24. 依存関係を使用できるクラス/モジュールを指定することは可能ですか?
- 25. これらの行をJavaでコンパイルすることは可能ですか?
- 26. Spring Data Couchbaseと外部ドキュメント(依存関係から)をマッピングすることは可能ですか?
- 27. 関数のクロージャにアクセスすることは可能ですか?
- 28. TFSまたはVisualStudioからの依存関係マッピングレポートを自動化することは可能ですか?
- 29. ジェンキンスパイプラインのパラメータをチェックして変更することは可能ですか?
- 30. Visual Studio 2008のアイテムテンプレートをファイル依存関係で作成することは可能ですか?
「hasA」を少し明確に定義する必要があります。つまり、どのようなコンテキストを意味するのかは不明です。モデリング「hasA」、またはオブジェクト「hasA」である可能性があります。いくつかの擬似コードや実際のコードはどうですか? – Chii