問題タブ [dynamic-class-creation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
458 参照

python - 実行時にクラスを作成するときに「type()」よりも「exec」を使用する利点は何ですか?

Pythonで実行時にクラスを動的に作成したい。

たとえば、次のコードを複製します。

...しかし、Foo1、Foo2、Foo クラスを動的に作成したい (つまり、最初のパスのコンパイルではなく実行中に)。

これを実現する 1 つの方法は、次type()のように を使用することです。

exec次のように、でそれを達成することもできます。

の使用はexec私にはうまくいきません(この質問を読んだ多くの人にはそうではないと思います)が、execまさにpythoncollections.namedtuple()クラスがどのように実装されているかです(この行を参照)。また、クラスの作成者 (Raymond Hettinger) による、exec hereの使用に対する弁護も非常に関連性があります。この弁護では、「名前付きタプルの重要な機能は、手書きのクラスとまったく同等である」と述べtype()られていexecます。

違いはありますか?execvsをtype()使用する理由

答えは、両方の方法が同じであり、namedtuple実装に多くの名前付きタプル変数が散りばめられているだけであり、すべてのメソッドのクロージャーを動的に生成してこれを行うと、コードが扱いにくくなる可能性があると思いますが、知りたいですこれにさらに何かがある場合。

に対する私の不快感についてはexec、信頼できない関係者が悪意のあるコードを挿入する方法がまったくない場合は、それで問題ないことを認識しています...それが私を緊張させるだけです.

0 投票する
1 に答える
2225 参照

java - Generics を使用した Selenium Webdriver および Type コンストラクター - その方法

Selenium 2 webdriver で PageFactory デザインを使用する最良の方法は何ですか?しかし、ページが常に期待されるページをロードするとは限らない場合、新しい予期しないページを作成するにはどうすればよいですか?

// submitButton.Click(); の後に返されたページが .aspx ページですか? 100% 確信は持てません。サインインや必要な乗客数などの以前の要件によって異なりますが、これはこのページには保存されません。

ある種の Type コンストラクターを使用できますか?

だから私は次のようなことをすることができます:

別のクラスで、このようなものを使用できますか? 私はジェネリックをそのように使用したことがなく、Java Class.forName(name); のようなものを使用することを検討していました。

私が持っている主な懸念は、次のように単体テストで関数をチェーンできないことです。

これを行う方法に関する推奨事項はありますか?

0 投票する
3 に答える
865 参照

java - JavaジェネリックとClass.forName()を使用したクラスの動的ロード

私が政府と呼ばれるクラスを作っていると仮定します。政府には、役員、大臣、部門などのメンバーがいます。これらのメンバーごとにインターフェイスを作成し、特定の政府が好きなように定義します。

Government クラスのメイン メソッドは と呼ばれServe(Request req)ます。クエリ レートが非常に大きい (1 秒あたり 1000 以上のクエリ) と仮定します。

政府を作成するには、次のことができます
。1) Java ジェネリックを使用して記述Government<Class Minister, Class Officer, ...>し、特定の政府実装では、Java コードで独自の政府オブジェクトを作成し、main()デプロイ可能な jar を用意する必要があります。

2) 役員、大臣などのクラス名を指定する構成ファイルを用意し、Serve()呼び出されるたびに and を使用Class.forName()Class.newInstance()てクラスのオブジェクトを作成します。新しい政府は、そのメンバーのクラスと構成ファイルを作成するだけで済みます。main()すべての政府に1 つのシングルがあります。

純粋にパフォーマンスの観点から - どちらが優れており、その理由は何ですか? 私の主な懸念事項は次のとおりです。

a)forName()コストのかかる検索を毎回実行しますか? クラスの非常に大きな宇宙を仮定します。

b) 動的クラスで、ケース 1 では実行される可能性があるがケース 2 では実行されない可能性のあるコンパイラーの最適化を見逃していますか?

0 投票する
4 に答える
14620 参照

delphi - TLabel や TEdit などの Delphi でコンポーネントを動的に作成する方法 ...など

Delphi 2010 の使用

0 投票する
1 に答える
282 参照

python - 動的なPythonクラス定義とamfast動的クラスマッピングおよびコード生成を使用してActionScriptクラスを生成する

オブジェクト階層を含むxmlスニペットがあります。

ElementTreexml表現を使用してxmlを解析します。

xml_doc要素を再帰的にループし、「namedtuple」を使用してクラス定義を作成します。

これは次のように呼ばれます:

StackOverflowの他の場所にある関数であるdumpを使用します。

あなたは呼び出すことができます:

そして、(私は手動で間隔をフォーマットしました)を参照してください:

したがって、コードが実際にクラスを生成していることがわかります。ここで、amfast DynamicClassMapperとコードジェネレーターを使用する場合:

RootObj.asというファイルを取得します。

これは明らかにすべての属性などが欠落しています。このコーディング方法を利用して、実際に正しいクラス定義を含むActionScriptファイルを出力する方法はありますか?

0 投票する
1 に答える
149 参照

structuremap - 構造マップで具象クラス名の代わりにメソッド名を指定する

すべてのフォーム値を Windows フォームに格納するクラス ScreenParameter (IScreenParameter を実装) があります。このクラスは、ユーザーがすべてのフィールドに入力してボタンをクリックすると開始されます。ビジネス レイヤーのクラスは、コンストラクターで IScreenParameter を待機します。構造マップを使用してインターフェイスを注入していますが、そのコンテキストで作成する必要があります。インターフェイスを作成して設定するメソッド (GetScreenParameters) があります。構造マップの構成中にconcreateクラスの代わりにメソッド名を付けたいと思い、これを試しました。

しかし、それは機能していません。これを達成する方法を教えてください。

0 投票する
1 に答える
664 参照

c# - 実行時に動的クラスを作成する

実行時に動的クラスを作成するためのアイデアを誰もが持つことができます.iはdictionary<string,object>、データテーブルのすべての列をデータ型で含むものを持っています。私の計画は、辞書に基づいて動的クラスを作成することです。データテーブルの列名がクラスのプロパティであることを意味します。作成list<dynamic class>してグリッドにバインドした後

コードがあれば助かります

0 投票する
2 に答える
1626 参照

c# - 動的に/オンザフライでインターフェースからクラスを作成できますか?nHibernateはこのプラクティスをサポートしますか?

私はいくつかのグーグルをしましたが、私はまだ解決策を見つけていません、あるいは私の問題に対する決定的な答えさえ見つけていません。

問題は単純です。動的に名前が付けられた/作成されたオブジェクトのインスタンスごとにテーブルを動的に作成したいと思います。各テーブルには、オブジェクトに固有のレコードが含まれます。これは本質的にアンチパターンであることを認識していますが、これらのテーブルは理論的には非常に大きくなる可能性があるため、すべてのデータを1つのテーブルに含めるとパフォーマンスの問題が発生する可能性があります。

より具体的な例:

トランザクションのコレクションを含む基本クラス/インターフェースACCOUNTがあります。私のソフトウェアを使用する会社ごとに、クラスの新しい具体的なバージョン、BOBS_SUB_SHOP_ACCOUNTまたはSAMS_GARAGE_ACCOUNTなどを作成します。したがって、クラスの識別値はクラス名であり、クラス内のフィールドではありません。

私はC#とFluentnHibernateを使用しています。

だから私の質問は:

  1. これは理にかなっていますか、それとももっと明確にする必要がありますか?(または、本当にしてはいけないことをしようとしていますか?)
  2. このパターンには名前がありますか?
  3. nHibernateはこれをサポートしていますか?
  4. 私が読むことができるパターンに関するドキュメントを知っていますか?

編集:これについてもう少し考えてみたところ、動的オブジェクトは本当に必要ないことに気づきました。必要なのは、NHibernateを介して何らかの識別子を持つオブジェクトをテーブルに結び付ける方法です。例えば:

NHibernateがそれを許可すると仮定すると、それは私が必要とするものには十分なはずです。アカウントテーブルで大量のボリュームが発生した場合に、1つの巨大なテーブルがそれを打ち負かすような状況を回避しようとしています。すべてのアカウントが1つのテーブルにある場合、それは醜い可能性があります。

前もって感謝します。

0 投票する
2 に答える
469 参照

ruby - メソッド定義の動的に作成された文字列の eval を使用したクラス作成

コードが次のような奇妙な状況に陥っています。

... IRB (ruby 1.9.3) では動作しますが、コードでは動作しません。メソッドをラップする「class Foo」の有無にかかわらず試してみました。控えめに言っても、これはイライラします。文字列パーサーのコンテンツを irb の変数パーサーに直接コピーし、上記の行を使用してクラスを作成すると、メソッドはすべてそこにありますが、コードで実行すると、そうではありません。

0 投票する
2 に答える
354 参照

c# - 動的オブジェクトのメソッドを呼び出す

両方のオブジェクトが動的に作成されている場合、別のオブジェクトメソッドからオブジェクトのメソッドを呼び出す/呼び出すにはどうすればよいですか?

状況は次のとおりです。

動的に作成された2つのオブジェクトがあり、各オブジェクトは異なるクラスに対応しています

objA'smethod1A()からobjB'sを呼び出したいmethod1B()

どうすればそれを達成できますか/どのようなアプローチをお勧めしますか?