問題タブ [name-clash]
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.
c# - C#デフォルトのスコープ解像度
BCLクラス'Windows.Forms.Button'と衝突するac#クラス'Button'(変更できません)を継承しました。通常、Idは非常に喜んで行きます:
しかし、このクラスへの参照が多数あるか、再入力するのが面倒です。
コンパイラ(リンカー?)をデフォルトでBCLバージョンよりもカスタマイズされたバージョンのButtonを使用するようにする方法はありますか?
java - メソッド変数とパッケージ名の間の Java 命名衝突
Axis フレームワークによって WSDL ファイルから生成されたいくつかのクラスがあります。これらのクラスの 1 つに、生成されたメソッドがあります。
メソッド パラメーターの変数名 org は、パッケージ org.apache.axis.client との名前の衝突を引き起こします。これは、コンパイラがパッケージと変数を区別できないためです。メソッドの変数名 org を変更することでこれを簡単に修正できることはわかっていますが、ワークフローが遅くなるため、これは避けたいと思います。WSDL ファイルまたは生成されたクラスを変更する以外に、これを回避する方法はありますか?
コンパイラ エラー:
c++ - Objective-C と C++ コードの混合
C++ ライブラリによって提供される機能を使用する Objective-C/C++ アプリケーションがあります。
C++ クラスの 1 つに、次のような列挙型が含まれています。
上記のクラス宣言を含むヘッダー ファイルを Objective-C/C++ ソース ファイル (*.mm) に (#import -if that matter- を使用して) インクルードすると、プリプロセッサが "YES" を " という用語に置き換えるため、コンパイルが失敗します。 (BOOL) 1" (および同様に "(BOOL) 0" による "NO")。
列挙型の値の名前を変更せずにそれを修正する方法はありますか?
architecture - レイヤー間の名前の衝突
だから私は非常にクールな (そして非常に大規模な) n 層アプリケーションを開発しています。
基本的に、次のアセンブリがあります。
ドメイン
Domain.Contracts
サービス
Services.Contracts
Presentation.Admin
Presentation.Web
Presentation.Core (管理者と Web 間で共有)
Presentation.Core.Contracts を実装する場合があります
私が取り組んでいる主な問題は、異なるレイヤー間の名前の衝突です。 すなわち。
Services.Contracts.AccountServicesRequest
Domain.Contracts.AccountServicesRequest
サービス名にも同じ問題がありました (この場合、WCF などではなくクラスをサービスとして使用しているだけです)。すなわち:
Services.Contracts.IAccountService
Domain.Contracts.IAccountService
ドメインレイヤー IxxxServiceHandler ですべての「サービスハンドラー」を作成することでこれを解決しました。これにより、次のようになります。
Services.Contracts.IAccountService
Domain.Contracts.IAccountServiceHandler
ただし、レイヤー間を行き来するオブジェクトでこの問題を解決できませんでした。これは、私のソリューションを通じて多くの場所に散らばっているようです。誰かが同じ問題を抱えているかどうかを知りたかっただけです。もしそうなら、どのように解決しましたか?
c++ - C++/VS2005: 2 つの異なる .cpp ファイルで同じクラス名を定義する
やや学術的な質問ですが、単体テストを書いているときにこれに遭遇しました。
私の単体テスト フレームワーク (UnitTest++) では、フィクスチャとして機能する構造体を作成できます。通常、これらはファイル内のテストに合わせてカスタマイズされるため、単体テスト ファイルの先頭に配置します。
ただし、最近 (少なくとも VS2005 では) 同じ名前を使用してフィクスチャ構造体に名前を付けると (したがって、構造体の 2 つのバージョンが同じ名前で存在するようになりました)、バージョンの 1 つが静かにスローされることがわかりました。コンパイラを /W4 (最高の警告レベル) に設定していて、警告が表示されないため、これはかなり驚くべきことです。これは名前の衝突であり、名前空間が発明された理由だと思いますが、それぞれの単体テスト フィクスチャを個別の名前空間にラップする必要があるのでしょうか? もっと基本的なものを見逃していないことを確認したいだけです。
これを修正するより良い方法はありますか? シンボルの重複エラーか何かが表示されるべきではありませんか?
java - 拡張時の Java ジェネリック名の競合
私はジェネリックを初めて使用します。次の問題で得られる助けをいただければ幸いです。
私はこの親クラスを持っています:
そして、私はこの子クラスを持っています:
まあ、それChild.f
がオーバーライドされることを望んでいましParent.f
たが、残念ながらコンパイラはここで何が起こっているのか気に入らず、私に与えます:
Name clash: The method f(K, V) of type Child<K,V> has the same erasure as f(K, V) of type
Parent<K,V> but does not override it
このエラーは以前にさまざまなコンテキストで見たことがありますが、この特定のコンテキストでなぜ発生するのかわかりません。それを回避する方法はありますか?
前もって感謝します。
asp.net-mvc-3 - ASP.NETMVC3モデルバインディング-ViewBag.Titleがid="Title"の入力と衝突します
ViewBagの動的プロパティに問題があるようです。私が持っているとしましょう:
そして、私が持っているページのフォームで:
Titleは、データベーステーブルのフィールドの名前です。
ページが最初に開いたとき、IDが「Title」のテキストボックスは、ViewBag.Title動的プロパティの値を取ります。
モデルバインディングの正確な詳細については少しぼんやりしていますが、これはバグのようです。そうでない場合は、バインディングプロセスの結果として自然に発生するものである場合は、警告が表示されると便利です。これ。
私が見つけた回避策は、ViewBagプロパティの名前を次のように変更することでした。
(タイトルがTituloに変更されました-名前の衝突を避けるために、常に別の言語を知っておくとよいでしょう...)
そして、問題は解決しました。
ただし、問題は次のとおりです。
この動作は予想されるものですか?バグは簡単に見つけることができましたが(この質問を書くことを含めて、それを理解するのに1時間かかりました)、他のバグの方がもっと多いのではないかと思います。
編集:
質問の言い換え:
モデルバインダーは、ViewBagで見つかったプロパティを自動的にバインドしますか?強く型付けされたViewModelに既存のプロパティが存在する場合でも、ページに渡しましたか?確かにViewModelが優先されるべきですか?
python - 名前に「django」という単語が含まれるパッケージをインポートすると名前が衝突しますか?
私はやや奇妙な問題を抱えています。パッケージのブランチ全体の名前を から変更することにしました
に
問題は、これが完了した後、次のエラーが発生することです。
今なら、名前を
できます!django という単語に「x」を追加したことに注意してください。
foo.django.bar.somemodule を使用すると、ある種の名前の衝突があるようですが、何が得られますか? それらはdjango自体から分離する必要があります。
私のコードのすべてのインポートは次の形式です
編集:最後から2番目のインポートに「x」があることを明確にする
gcc - いくつかの関数のインターフェイスを持ち、残りのオブジェクトが隠されている C ライブラリを構築する方法は?
po、qo、ro という 3 つの C オブジェクト ファイルがあり、それらを使用してライブラリを作成したいとします。最初のオブジェクト ファイル po には、エクスポートしたい関数がいくつかあります。これらの関数は、他の 2 つのオブジェクト (qo、ro) を使用して実装されています。そのようなライブラリとリンクするとき、それらのシンボルがメインプロジェクトの他のオブジェクトと衝突する可能性があるため、 po の関数のみが表示され、他の関数は表示されないようにする必要があります。たとえば、qo には po が必要とするいくつかの関数 f() があるかもしれませんが、他のライブラリの中でこのライブラリとリンクするメイン プロジェクトに実装されている f() と衝突する可能性があります。どうすればgccを使用してそれを行うことができますか?
glassfish - アプリケーションサーバーでのライブラリの衝突にどのように対処する必要がありますか?
サードパーティのライブラリは、多くの場合、デプロイ先のアプリケーションサーバーに含まれており、アプリケーションに含まれているライブラリとクラス分けされます。これまでのところ、これを可能な限り最も単純でハッキーな方法で処理してきました。アプリサーバー上のライブラリを削除することです。
私たちの場合は問題ありません。ライブラリを提供するためにアプリサーバーに依存している人は誰もいません。しかし、アプリケーションサーバーに含まれているライブラリに依存する可能性のある他の多くの人々のアプリと一緒にアプリを実行している場合、これは解決策にはなりません。
これはどのように(きれいに)解決されるはずですか?お元気ですか?
問題の例としては、cxf、hibernate、jacksonを使用してjax-rsアプリケーションを構築し、glassfish2.1.1にデプロイする場合があります。glassfishはasm3.1ライブラリを提供しますが、これにより、互換性のない1.5バージョンを使用したHibernateとの衝突が発生します。同様に、アプリケーションには(バグ修正のために)jackson 1.8.2が必要ですが、glassfish2.1.1にはバージョン0.9が付属しています。ブーム。単に問題のあるライブラリを削除する以外に、これを修正する方法はありますか?