問題タブ [primitive]
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 - これは本当に拡大対オートボクシングですか?
これは、Java仕様の欠点に関連して、別の質問への回答で見ました。
さらに欠点があり、これは微妙なトピックです。これをチェックしてください:
ここでは、コンパイラが自動ボクシングよりも拡張を選択するため、「long」が出力されます(自分でチェックしていません)。自動ボクシングを使用するときは注意するか、まったく使用しないでください。
これは実際にはオートボクシングではなく拡大の例であると確信していますか、それともまったく別のものですか?
i
私の最初のスキャンでは、オブジェクトではなくプリミティブとして宣言されていることに基づいて、出力が「長い」というステートメントに同意します。ただし、変更した場合
に
出力は「整数」を出力します
ここで実際に何が起こっているのですか?私はJava用のコンパイラ/バイトコードインタプリタについて何も知りません...
c# - ジェネリック型変換 FROM 文字列
別のクラスの「プロパティ」を格納するために使用したいクラスがあります。これらのプロパティには、単に名前と値があります。理想的には、型指定されたプロパティを追加できるようにして、返される「値」が常に希望する型になるようにすることです。
型は常にプリミティブでなければなりません。このクラスは、基本的に名前と値を文字列として格納する抽象クラスをサブクラス化します。このサブクラスは、基本クラスにいくつかの型安全性を追加するという考えです (また、いくつかの変換で私を節約します)。
だから、私は(おおよそ)これであるクラスを作成しました:
質問は次のとおりです。
文字列からプリミティブに戻す「一般的な」方法はありますか?
全体的に変換をリンクする一般的なインターフェイスを見つけることができないようです ( ITryParsableのようなものが理想的でした!)。
c# - ジェネリック型チェック
プリミティブに渡される型を強制/制限する方法はありますか? (bool、int、string など)
これで、ジェネリック型パラメーターをwhere句を介して型またはインターフェイスの実装に制限できることがわかりました。ただし、これはプリミティブ (AFAIK) の法案には適合しません。なぜなら、それらはすべて共通の基盤を持っているわけではないからです (誰かが言う前のオブジェクトは別として!:P)。
したがって、私の現在の考えは、歯を食いしばって大きなswitchステートメントを実行し、失敗時にArgumentExceptionをスローすることです。
編集1:
明確にするために:
コード定義は次のようになります。
そしてインスタンス化:
編集2
@Jon Limjap - 良い点、そして私がすでに考えていたこと。型が値型か参照型かを判断するために使用できる汎用メソッドがあると確信しています。
これは、処理したくない多くのオブジェクトを即座に削除するのに役立ちます (ただし、Sizeなどの使用される構造体について心配する必要があります)。興味深い問題はありませんか?:)
ここにあります:
MSDNから取得。
私は興味がある。これは、拡張メソッドを使用して .NET 3.x で実行できますか? インターフェイスを作成し、そのインターフェイスを拡張メソッドに実装します (これはおそらく少し太ったスイッチよりもクリーンです)。さらに、後で軽量のカスタム型に拡張する必要がある場合は、基本コードを変更する必要なく、同じインターフェイスを実装することもできます。
皆さんはどう思いますか?
悲しいニュースは、私は Framework 2 で作業していることです!! :D
編集3
これは、Jon Limjaps Pointerに続くとてもシンプルなものでした。とてもシンプルで泣きそうになりましたが、コードが魔法のように機能するので素晴らしいです!
それで、これが私がやったことです(あなたは笑うでしょう!):
ジェネリック クラスに追加されたコード
次に、型をチェックして例外をスローするためのちょっとしたユーティリティ メソッド、
あとは、クラス コンストラクターでEnforcePrimitiveType()を呼び出すだけです。仕事終わり!:-)
唯一の欠点は、設計時ではなく実行時 (明らかに) にのみ例外をスローすることです。しかし、それは大したことではなく、 FxCopのようなユーティリティ(職場では使用していません) で解決できます。
これについて Jon Limjap に感謝します!
java - .NET がプリミティブ配列を Web サービスから逆シリアル化しないのはなぜですか?
ヘルプ!C# アプリケーションで使用されている Axis Web サービスがあります。long 値の配列が常に [0,0,0,0] として表示されることを除いて、すべてがうまく機能します。これは正しい長さですが、値は逆シリアル化されません。他のプリミティブ (int、double) を試してみましたが、同じことが起こります。私は何をしますか?サービスのセマンティクスを変更したくありません。
synchronization - 特別なハードウェア命令を使わずに、1 つのコードでどのように動作をテストして設定するのでしょうか?
私が見つけたほとんどの実装では、これを行うためにハードウェア命令が必要です。ただし、これが必要であることを強く疑っています(そうである場合、理由がわかりません...)
c# - intは64ビットC#の64ビット整数ですか?
私のC#ソースコードでは、整数を次のように宣言している可能性があります。
また
現在普及している32ビットの世界では、それらは同等です。しかし、64ビットの世界に移行するとき、次のことが同じになると言っているのは正しいですか?
java - プリミティブ Java 型を表すクラスを動的に見つける
Java でリフレクティブ メソッドを呼び出す必要があります。これらの呼び出しには、プリミティブ型 (int、double など) の引数を持つメソッドが含まれます。メソッドをリフレクティブに検索する際に、そのような型を指定する方法は、int.class、double.class などです。
課題は、型を動的に指定する外部ソースからの入力を受け入れることです。したがって、これらのクラス参照も動的に作成する必要があります。パラメータ型のリストを含むメソッド名のリストである区切りファイルを想像してください。
入力が のようなものだった場合、その Class インスタンスをjava.lang.String
使用できることがわかります。Class.forName("java.lang.String")
そのメソッドまたは別のメソッドを使用して、プリミティブ型のクラスを取り戻す方法はありますか?
編集:
すべての回答者に感謝します。私がやりたいことをきれいに行う組み込みの方法がないことは明らかなのでClassUtils
、Spring フレームワークのクラスを再利用することにします。私の要件で動作する Class.forName() の代替品が含まれているようです。
java - オブジェクトをラップする代わりにプリミティブを使用する必要があるのはいつですか?
実際には、実用的な価値がほとんどない同様のトピックがあります。私が理解している限り、プリミティブはパフォーマンスが優れているため、オブジェクト関連の機能 (null
チェックなど) が必要な場合を除いて、あらゆる場所で使用する必要があります。右?
drawing - XNA を使用して線を描画するにはどうすればよいですか?
XNA (およびさまざまなバージョン) に関するチュートリアルをたくさん読みましたが、プリミティブの描画についてまだ少し混乱しています。すべてが本当に複雑に思えます。
コードを使用して、画面に 1 本または 2 本の線を描画する最も単純な XNA 実装を誰かに見せてもらえますか? おそらく簡単な説明(ボイラープレートを含む)で?
私はゲーム プログラマーではなく、XNA の経験もほとんどありません。私の最終的な目標は、最終的に回転などで(手動で)変換するいくつかの線を画面に描画することです。ただし、この最初のステップでは..単純に線を引く必要があります。昔の OpenGL の時代には、いくつかのメソッド呼び出しで線を引くのはかなり簡単だったのを覚えています。管理されていない directx 呼び出しを使用するように単純に戻す必要がありますか?
java - プリミティブにメモリアドレスが割り当てられていますか?
バックステージでのプリミティブ型の宣言と割り当てのプロセスを理解しようとしています。
int i;
i = 3;
1) の場合、メモリ スタック上に、i という名前の int 型の値を格納するためのスペースを割り当てます 2) の場合、上記で確保したスペースに値 3 を割り当てます
そこにメモリアドレスはありますか?私の印象では、メモリアドレスは常にヒープ上のオブジェクトに関連付けられていますか?
アップデート:
返信について:
したがって、スタック上のすべての変数には、ヒープ上のオブジェクトと同様に、すべてメモリ アドレスが割り当てられます。私は正しいですか?
しかし、Java の場合はそうではありませんか?