回答編集履歴
2
refine
test
CHANGED
@@ -24,4 +24,12 @@
|
|
24
24
|
|
25
25
|
> ・リフレクションの使用されるケース
|
26
26
|
|
27
|
+
一部のアプリケーション・フレームワークの実装などで利用されます。特に、"アノテーション"を利用するフレームワークでは高度に活用されています。
|
28
|
+
|
29
|
+
|
30
|
+
|
27
|
-
|
31
|
+
フレームワーク・コードの実装時点では、利用側の具体的なクラスやインターフェイスは分かりませんから、リフレクション機能が必要になります。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
1
refine
test
CHANGED
@@ -14,7 +14,11 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
たとえば、メソッド名や引数/個数などの型情報が一致していないと、コンパイラは不整合をチェックしエラーを報告**してくれます**。一方のリフレクションは単なる文字列としてメソッド名や引数型を処理するので、不整合のチェックをコンパイル時には行えず、実行時になって初めて例外スローされます。
|
17
|
+
たとえば、メソッド名や引数/個数などの型情報が一致していないと、コンパイラは不整合をチェックしエラーを報告**してくれます**。一方のリフレクションは単なる文字列としてメソッド名や引数型を処理するので、不整合のチェックをコンパイル時には行えず、実行時になって初めて例外スローされます。(不具合の発覚フェーズが遅れます。)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
他回答にある`private`を無視なども、このコンパイラ支援(チェック機構)を受けられない/受けなくてすむことを利用したテクニックです。
|
18
22
|
|
19
23
|
|
20
24
|
|