問題タブ [super]
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.
ruby - define_method で定義されたメソッドで super を呼び出す
User で呼び出されるメソッド (属性) に基づいてメソッドを定義する Model クラスを作成しました (これは Model から継承されます)。問題は、define_method で定義されたメソッドをオーバーライドできず、super を呼び出して定義済みのメソッドに渡すことができないことです。これは、定義されたメソッドがモデルではなくユーザー自体に追加されるためだと思います。そのため、実際にはスーパークラス (つまりモデル) にメソッドがありません。
これを行う理由は、ほとんどの属性をデータベースに直接保存する必要があるためですが、パスワードなどの一部の属性には追加の処理が必要です。
これを機能させるためにコードを変更する方法はありますか? 動的に作成されたメソッドをオーバーライドする方法が必要です。
java - コンストラクターにsuper()を入れる必要はありませんか?
これは、サブクラスのコンストラクターに入れないと、コンパイラーによって自動的に入れられませんか?
それは私がそれを気にする必要さえないことを意味しますか?いくつかの記事で彼らはそれを出しました。
また、引数付きのコンストラクターが1つある場合、これはコンストラクターになりますか、それとも引数リストのないコンストラクターを使用しますか?
python - Python 3 での super() の奇妙さ
これについてはこれまで何度も議論されてきたことは知っていますが、「ボンネットの下」で何が起こっているのかについての説明はありませんでした。
コードの最後の行にコメントを入れるとエラーが発生する理由について、詳細な説明を提供できる人はいますか? その object.__init__ が引数を取らないことは知っていますが、行がコメントアウトされているときにコードが機能するのはなぜですか?
actionscript-3 - varargs を使用して actionscript コンストラクターから super() を呼び出す
コンストラクターがそのパラメーターを vararg (...) として受け取る場合、その vararg をスーパークラスに渡すだけのサブクラスを作成することは不可能のようです。
通常の関数のこの同じ状況の修正に関する関連する質問があります: ActionScipt で Vararg メソッドをラップしますが、それをスーパー コールで動作させることはできません。
基本クラス:
サブクラス:
今電話したら
出力を取得します
そして、私はそれを印刷したい:
パラメータの処理を実際にサブクラスに移動するか、別の初期化メソッドにシフトする以外に、スーパーコールを正しく取得する方法を知っている人はいますか?
python - Pythonのurllib2.Requestでsuper()を機能させる
今日の午後、へのカスタム拡張機能のバグを見つけるために数時間を費やしましたurllib2.Request
。問題は、私が知ったように、super(ExtendedRequest, self)
(urllib2.Request
私はPython 2.5を使用しています)まだ古いスタイルのクラスであり、使用super()
できないため、の使用法でした。
両方の機能を備えた新しいクラスを作成する最も明白な方法は、
動作しません。それを呼んで、私はAttributeError: type
によって育てられたままになっていurllib2.Request.__getattr__()
ます。さて、開始してコピーする前に、urllib2.Request
クラス全体を/ usr / lib / pythonから貼り付けて、次のように書き直します。
誰かがアイデアを持っています、どうすればこれをよりエレガントな方法で達成できますか?(これは、の作業サポートに基づいた新しいスタイルのクラスを持つことです。)urllib2.Request
super()
編集:ちなみに:言及されたAttributeError:
java - テスト用にJRubyにインポートされたJavaクラスでsuperへの呼び出しをスタブアウトするにはどうすればよいですか
RSpec と JRuby で Java クラスをテストしています。
RSpec テストでインポートされた Java クラスの super への呼び出しをスタブ化するにはどうすればよいですか?
例えば:
私は2つのJavaクラスを持っています:
JRuby で A.foo のコードではなく、B.foo のコードをテストしようとしています。RSpec テストでスーパー クラス メソッドの呼び出しをスタブ化するにはどうすればよいですか?
rspec テスト:
最初にモジュールメソッドにヒットすることを期待して、新しい foo メソッドを含むモジュールを B のクラスに含めようとしましたが、B はまだ A を呼び出します。モジュールを挿入する手法は Ruby では機能しますが、JRuby およびインポートされた Java クラスでは機能しません。
RSpec テストに合格するためにスーパークラス メソッドをスタブ化する他のアイデアはありますか?
python - 親クラス初期化子を暗黙的に呼び出す
上記のコードでは、コメントアウトされた__init__
呼び出しは、スーパークラスの初期化を行うための一般的に受け入れられている「スマート」な方法のようです。ただし、クラス階層が変更される可能性がある場合は、最近までコメントなしのフォームを使用していました。
B
上記の階層でのスーパーコンストラクターの呼び出しでは、これB.__init__
が再度呼び出されますが、self.__class__
実際には、私がいつも想定していたものC
ではないようです。B
B
Python-2.xで、現在のクラス( in in )に名前を付けずにスーパーコンストラクターを呼び出すときに、(すべての親クラスを正しい順序で初期化することに関して)適切なMROを維持できる方法はありsuper(B, self).__init__(1, b, c)
ますか?
php - シングルトンクラスと継承の使用
私はヘルパークラスを利用するWebアプリケーションに取り組んでいます。これらのクラスは、フォーム処理などのさまざまな操作に対する関数を保持します。
アプリケーションの複数の場所でこれらのクラスが必要になることがあります。現在の方法は、新しいオブジェクトを作成することです。変数を渡すことができません。これは大変な作業になります。
これにシングルトンクラスを使用することを考えていました。このようにして、一度に1つのインスタンスのみが実行されていると確信しています。
ただし、私の質問は、このパターンを使用する場合、すべてのオブジェクトに対してシングルトンクラスを作成すると、多くのコード複製が必要になることです。
代わりに、シングルトンクラスであるsuperHelperのスーパークラスを作成し、すべてのヘルパーにそれを拡張させることはできますか?
この種の設定は機能しますか、それとも別の方法がありますか?
そしてそれがうまくいくなら、誰かがそのようなsuperHelperクラスをコーディングする方法について何か提案がありますか?
君たちありがとう
iphone - 複数のテーブルビュークラスを使用したスーパーデロックエラー
私はiPhoneアプリを初めて使用し、タブベースのアプリを作成しようとしています。両方のタブで画像の上にテーブルを配置しようとしています。オーディオリンクの表が表示されたタブと、ビデオリンクの表が表示された他のタブ。
これはすべて順調に進んでいます。2つのテーブルに対して2つのviewControllerを作成しました。すべてのコードは、それを機能させることを除けばうまく機能します。2番目のタブのvideoTableViewControllerの-(void)dealloc{}でスーパーdeallocをコメントアウトする必要があります。
そうでない場合は、次のエラーメッセージが表示されます。
FREED(id):メッセージnumberOfSectionsInTableView:解放されたオブジェクトに送信されます
助けてください、なぜそれがこれをしているのか分かりません...
ruby - コンストラクターのオーバーライド
私はクラスを持っています:
次のような独自のコンストラクターで新しいクラスを作成する必要があります。
しかし、コードを起動すると、エラーが発生しました: