タグ付けされた質問 「reflection」

リフレクションは、実行時にプログラムの構造や動作を観察および/または変更するプログラムの機能です。リフレクションは、サポートするプログラミング言語に依存しています。このタグを使用する場合は、使用しているプログラミング言語にタグを付けてください。

7
プライベートメソッドを呼び出す方法はありますか?
XMLとリフレクションを使用Objectして別のクラスにを返すクラスがあります。 通常、これらのオブジェクトは外部オブジェクトのサブフィールドですが、時々それをオンザフライで生成したいものです。私はこのようなものを試しましたが、役に立ちませんでした。Javaではprivateリフレクション用のメソッドにアクセスできないためだと思います。 Element node = outerNode.item(0); String methodName = node.getAttribute("method"); String objectName = node.getAttribute("object"); if ("SomeObject".equals(objectName)) object = someObject; else object = this; method = object.getClass().getMethod(methodName, (Class[]) null); 提供されたメソッドがの場合private、で失敗しますNoSuchMethodException。メソッドを作成するpublicか、派生元の別のクラスを作成することで解決できます。 要するに、privateリフレクションを介してメソッドにアクセスする方法があるのか​​と思っていました。
146 java  reflection  private 



8
Javaリフレクション:変数の名前を取得する方法?
Javaリフレクションを使用して、ローカル変数の名前を取得することは可能ですか?たとえば、私がこれを持っている場合: Foo b = new Foo(); Foo a = new Foo(); Foo r = new Foo(); これらの変数の名前を見つけることができるメソッドを実装することは可能ですか? public void baz(Foo... foos) { for (Foo foo: foos) { // Print the name of each foo - b, a, and r System.out.println(***); } } 編集:この質問は異なりますJavaに関数に渡された変数の名前を見つける方法はありますか?それは、リフレクションを使用してローカル変数の名前を決定できるかどうかについての質問をより純粋に尋ねるのに対し、他の質問(受け入れられた回答を含む)は変数の値のテストにより焦点を当てています。
139 java  reflection 

5
オブジェクトがC#でジェネリック型かどうかのテスト
オブジェクトがジェネリック型であるかどうかテストを実行したいと思います。私は成功せずに以下を試しました: public bool Test() { List<int> list = new List<int>(); return list.GetType() == typeof(List<>); } 私は何が間違っているのですか、またこのテストをどのように実行しますか?
134 c#  .net  generics  reflection  types 


8
リフレクションの一般的なフィールド取得値
リフレクションを介してフィールド値を取得しようとしています。問題は、フィールドのタイプがわからないため、値を取得するときにそれを決定する必要があることです。 このコードは、次の例外で発生します。 java.lang.Stringフィールドcom .... fieldNameをjava.lang.Stringに設定できません Field field = object.getClass().getDeclaredField(fieldName); field.setAccessible(true); Class<?> targetType = field.getType(); Object objectValue = targetType.newInstance(); Object value = field.get(objectValue); キャストしようとしましたが、コンパイルエラーが発生します。 field.get((targetType)objectValue) または targetType objectValue = targetType.newInstance(); これどうやってするの?
132 java  reflection 

4
動的オブジェクトのメンバーを反映​​するにはどうすればよいですか?
.NET 4の動的キーワードで宣言されたオブジェクトからプロパティとその値の辞書を取得する必要がありますか?これにリフレクションを使用しても機能しないようです。 例: dynamic s = new ExpandoObject(); s.Path = "/Home"; s.Name = "Home"; // How do I enumerate the Path and Name properties and get their values? IDictionary<string, object> propertyValues = ???
131 c#  dynamic  reflection 

14
Javaリフレクションを使用して継承された属性の名前/値を取得する
「ParentObj」から拡張されたJavaオブジェクト「ChildObj」を持っています。ここで、Javaリフレクションメカニズムを使用して、継承された属性も含めて、ChildObjのすべての属性名と値を取得できる場合はどうでしょうか。 Class.getFieldsはパブリック属性の配列を提供し、Class.getDeclaredFieldsはすべてのフィールドの配列を提供しますが、継承されたフィールドリストを含むフィールドはありません。 継承された属性を取得する方法もありますか?

3
Objective-Cクラス->次のような文字列:[NSArray className]-> @“ NSArray”
クラスオブジェクト自体からクラスの文字列名を取得しようとしています。 // For instance [NSArray className]; // @"NSArray" 私は見つけましたobject_getClassName(id obj)が、それにインスタンスを渡す必要があります。私の場合、それは不必要な作業です。 では、インスタンスではなくクラスオブジェクトから文字列を取得するにはどうすればよいでしょうか。

4
リフレクションによってゲッターを呼び出す最良の方法
特定のアノテーションを使用してフィールドの値を取得する必要があるため、リフレクションを使用してこのフィールドオブジェクトを取得できます。問題は、このフィールドは常にプライベートであることですが、事前に常にゲッターメソッドがあることがわかっています。setAccesible(true)を使用してその値(PermissionManagerがない場合)を取得できることはわかっていますが、そのgetterメソッドを呼び出すことを好みます。 「get + fieldName」を検索することでメソッドを検索できることはわかっています(たとえば、ブールフィールドは「is + fieldName」と呼ばれることもあります)。 このゲッターを呼び出すより良い方法があるかどうか疑問に思います(多くのフレームワークはゲッター/セッターを使用して属性にアクセスするため、別の方法で行う可能性があります)。 ありがとう
127 java  reflection  getter 

5
リフレクションを介してプライベートプロパティを設定することは可能ですか?
リフレクションを介してプライベートプロパティを設定できますか? public abstract class Entity { private int _id; private DateTime? _createdOn; public virtual T Id { get { return _id; } private set { ChangePropertyAndNotify(ref _id, value, x => Id); } } public virtual DateTime? CreatedOn { get { return _createdOn; } private set { ChangePropertyAndNotify(ref _createdOn, value, x …



5
一部のC#ラムダ式が静的メソッドにコンパイルされるのはなぜですか?
以下のコードからわかるように、Action<>オブジェクトを変数として宣言しています。 このアクションメソッドデリゲートが静的メソッドのように動作する理由を誰かに教えていただけませんか? なぜtrue次のコードで戻るのですか? コード: public static void Main(string[] args) { Action<string> actionMethod = s => { Console.WriteLine("My Name is " + s); }; Console.WriteLine(actionMethod.Method.IsStatic); Console.Read(); } 出力:
122 c#  .net  reflection  lambda 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.