問題タブ [unboxing]
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.
java - 拡張 for ループを使用すると配列が変換されますか?
Java 5 以降では、何らかの形式の「ボクシング」が配列に適用されますか? この質問は、次のコードが Iterable であるかのように配列を通過するときに思い浮かびました。
c# - これらはボックス化/ボックス化解除の例ですか
2 と 3 のボックス化/ボックス化解除の例はありますか?
1) ドキュメントの例:
2: ボックス化/ボックス化解除も同様ですか?
3: ボックス化/ボックス化解除も同様ですか?
すべての例で技術的に同じことが起こると思います。
- スタック上に値型が作成されます
- スタック上に参照が作成され、値がヒープにコピーされます。
- ヒープ値が参照にコピーされます。参照が削除されます。
2 と 3 は、ボクシング/アンボクシングの例だと思いますか?
c# - コード内のボクシングを見つけるためのツール
背景:私は xbox 向けに開発を行っており、最適化の段階にあります。オブジェクトの割り当てを減らす必要があります。開始する場所の 1 つは、(un)boxing が発生する場所を見つけることです。
私はILに非常に慣れていないため(まったく見たことがないという点で!)、逆アセンブラーを介してDLLを実行することを避け、(un)boxコマンドを探してから、それが関連するコード行を見つけようとします.
質問:この種のこと (ボックス化 (アン) が発生した場所) を報告するツールはありますか?
編集:これとはかなり異なるため、以下のリクエストを独自の質問にしました。
GC ヒープ ダンプを、オブジェクトの作成が行われたコード行に結び付ける方法には、非常に多くのボーナス ポイントがあります。
c# - ボックス化された値のタイプの比較
ここで達成しようとしているのは、ボックス化されたプリミティブ型の単純な値の比較です。
「理由」はわかります。「方法」がわかりません。
型は実行時まで不明であり、データソースのプリミティブ型である可能性があります。これには、文字列、日付時刻、ブール値などが含まれます。両方の型を処理する拡張メソッドを作成し、'==' 比較を行う前にキャストするという醜いルートをたどりました: (完全を期すために、すべてのプリミティブ型を含めました。 、および私が興味を持っていたもの)
結果として得られたメソッドは 300 行以上の長さであることが判明しましたが、これは問題ありませんでしたが (それでも恐ろしく)、「==」以上のことを行う必要があります。>、<、<=、>=、!= が必要です。
ボックス化された値の型の比較に使用できるリフレクションに何かありますか?
まったく何か?
java - モックされたインターフェースが null です
JMockitでDAOをモックしようとしています:
このテストクラスでは:
Expectations ブロックで dao オブジェクトが使用されると、NPE がスローされます。dao の宣言を @Mocked アノテーションが付けられたメンバー変数に移動しようとしましたが、同じことが起こります。また、MyDao の具体的な実装を使用してみましたが、同じことが起こります。
java - 単一要素のプリミティブ配列を渡すことによるボクシングの回避
Object型を入力として受け取るインターフェースを使用しています。プリミティブデータがあり、インターフェイスを介して渡す必要がある場合があるため、これは私にとっては残念なことです。もちろん、これは私を箱に入れさせます。
プロファイリングにより、この領域がコードのホットスポットであることが示されました。したがって、私はこの領域をより速くするための代替案を模索しています。
これについて今日私が考えたのは、静的プリミティブ配列を事前に割り当て、それにプリミティブ値を格納してから、配列を通過させることです(次に、インターフェイスの実装で、配列からdoubleを取得します。
私はこれをテストするためにいくつかのコードを書きました。適度に高い値(1,000万)の場合、配列メソッドの方が大幅に高速であることがわかります。テストの反復回数を増やすと、2つは収束します。
誰かが以前にこのアプローチについて考えたことがあるかどうか、そしてこれをうまくベンチマークする方法について何か提案があるかどうか疑問に思います。
サンプルコード:
対..。
ありがとう!RB
java - 暗黙的 (自動) のボックス化解除と明示的なボックス化解除のどちらがパフォーマンスの点で優れていますか?
コードに入れると、どちらがパフォーマンスが優れていますか (まったく違いがある場合)?
これを考えると:
どちらが速いですか?
またはこれ:
java - ログインに成功した IP を知るにはどうすればよいですか?
私はSpring Security 3を使用しています。次の方法があります:
アドレス変数のボックス化を解除するための汚いコードはありますか? 短く、または適切に書くことができますか?
controls - Html コントロールのキャスト (.NET 2.0)
以下のコードを使用してコントロールをキャストしました。
問題は、コンパイルしても動作せず、HttpException がスローされることです。コントロールを正しくキャストしているとは思いませんか?
Visual Studio 2008 と .NET Framework 2.0 を使用しています
ありがとう。
c# - ボックス化された int から short への直接ボックス化解除
プロシージャによって返されるデータベース値を処理するための変換メソッドを作成しました。次のようになります。
問題は、データベースが整数を返す場合、value
変数に が含まれ、が のint
場合、 が得られることです。T
short
InvalidCastException
この状況を処理するためにこのメソッドを改善するにはどうすればよいですか? メソッドのユーザーがこの種の問題を気にせず、ダブルキャストする必要がないことを望みます。これは可能ですか?