問題タブ [enumset]
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 - Hibernate 列挙セット エラー
複数のアクセス許可 (ENUM) を保持する Role オブジェクトがあります。しかし、私はこのエラーが発生し続けます。
どう表現するのがベストなのか。
役割クラス:
hibernate.cfg.xml
java - Java EnumSet - セットにフラグが含まれているかどうかを追加して確認する
C# のフラグに相当する EnumSet を適切に使用する方法を理解しようとしています。これが私の実装とこれを使用するメソッドです。ご覧のとおり、フラグが存在するかどうかのチェックが正しく機能していません。私が間違っていることを教えてください。
EnumSet を持つ次の Enum があります。
(これは正しく実装されていますか?)
セットに追加したり、セットに値が含まれているかどうかを確認したりできるようにしたいと考えています。しかし、これは機能していません:
最後のメソッドは、次のようにしても、すべての ExcelRangeBorder 型が含まれていることを示しています。
出力:
java - EnumSet のシリアル化
アプリのデバッグに数時間を費やしたばかりで、(別の o_O) Java バグに出くわしたと思います... スニフ... そうでないといいのですが、これは悲しいことです :(
私は次のことをしています:
mask
いくつかのフラグを使用して EnumSet を作成する- それをシリアライズする(で
ObjectOutputStream.writeObject(mask)
) - で他のいくつかのフラグをクリアおよび設定する
mask
- もう一度シリアライズする
期待される結果: 2 番目のシリアル化されたオブジェクトは最初のオブジェクトとは異なります (インスタンスの変更を反映します)。
得られた結果: 2 番目のシリアル化されたオブジェクトは、最初のオブジェクトの正確なコピーです
コード:
それは印刷します:
私はEnumSet
間違って使用していますか?クリアするのではなく、毎回新しいインスタンスを作成する必要がありますか?
ご意見ありがとうございます。
**** アップデート ****
私の最初のアイデアはEnumSet
、次のメッセージでどのフィールドが存在するか、または存在しないかを示すマスクとして使用することでした。これは、一種の帯域幅と CPU 使用率の最適化です。大間違いでした!!! シリアル化にEnumSet
は時間がかかり、各インスタンスには 30 (!!!) バイトかかります! 宇宙経済についてはこれで終わりです:)
一言で言えば、ObjectOutputStream
プリミティブ型の場合は非常に高速ですが (ここでの小さなテストで既にわかっているように: https://stackoverflow.com/a/33753694 )、(特に小さな) オブジェクトでは非常に遅く、非効率的です.. .
そのため、int に裏打ちされた独自の EnumSet を作成し、(オブジェクトではなく) int を直接シリアル化/逆シリアル化することで、この問題を回避しました。
シリアル化中は約 130 倍、逆シリアル化中は 25 倍高速です...
MyEnumSet:
通常の EnumSet:
ただし、それほど安全ではありません。たとえば、32 を超えるエントリを持つ列挙型では機能しません。
MyEnumSet の作成時に列挙型の値が 32 未満であることを確認するにはどうすればよいですか?
java - 列挙型を返すメソッド
EnumSet と Enum に関する質問があります。より具体的には、それらをパラメーターとして渡し、メソッドから返すことについて。
基本的に、あるクラスのメソッドにEnumの特定の要素のEnumSetを作成させたいのですが、そのクラスがEnumSetを別のクラスに渡し、新しいクラスがロジックを使用してセットから特定の要素を1つ選択し、それを必要なアクションを実行する 3 番目のクラス。それがあまりにも紛らわしい場合は、以下にいくつかのコンテキストを提供しようとしました.
いくつかのクラスを持つブラックジャック シミュレーター プログラムを作成しようとしています。私の質問に関連するクラスは、ディーラー、プレイヤー、およびハンドです。
私が抱えている問題は、Hand クラスにオプションの列挙を持たせたいということです。
次に、ArrayList カード (配列リストの Integer 値は単にカードのランクを表します。スーツは重要ではありません) であるハンドの内容を調べて、Player オブジェクトが使用できるオプションを判断します。
可能なオプションを決定し、
利用可能なオプションが含まれています。
Hand クラスがロジックを実行し、必要な EnumSet を作成する方法を完全に知っていますが、「EnumSet availableOptions」をパラメーターとしてプレーヤー クラスに送信し、プレーヤー クラスに playerOption() メソッドを実行させる方法を見つけるのに苦労しています。これは、ディーラーがそれに応じてカードを配るディーラー オブジェクトに 1 つの「オプション」を返します。
これはロジックのない単なるスニペットですが、列挙型セットを返すためにこれを行います:
jsp - セットに特定の Enum 値が含まれているかどうかを確認する EL 構文
ItemTypes のセットであるフィールドを持つ Item オブジェクトがあります。
もちろん、ItemType は単純な Enum です。
私の JSP では、アイテムに特定の ItemType があるかどうかを確認するために JSTL を使用したいと考えています。次の 3 つのスニペットを使用しようとしましたが、エラーも結果も得られません。3つすべてが失敗する理由はわかりません。誰かがこれらの 3 つのケースのそれぞれについて、私が思うようにプログラムが機能しない理由を説明し、機能している 4 番目の代替案を提供できますか :)?
重要なのは、ItemType
列挙型がパブリックであり、別のクラス内ではないことです。EL/JSTL/JSP を解決するクラスを含め、他のクラスから完全にアクセスできます。
enumset 内のすべての値を繰り返し処理しても問題ないことに注意してください。
結果として与えます:
java - EnumSet とブール値の配列の間の変換
私は、EnumSet
ブール型プリミティブの配列との間で前後に変換したいと考えています。それがうまく機能する場合List
は、配列の代わりに、および/またはBoolean
ブールプリミティブではなくオブジェクトを使用できます。
反対側で取得したいのは、次のような配列です。
ここでのこの質問は、 EnumSet を整数の配列に変換するに似ています。違い:
- ブール値または
Boolean
対整数 (明らかに) - 列挙型のすべてのメンバーを表し、
TRUE
for each 列挙型要素が に含まれ、EnumSet
forFALSE
each 要素が から除外されますEnumSet
。もう一方の質問の配列には、で見つかった項目のみが含まれますEnumSet
。(さらに重要なことには)
c# - アイテムの大きなセットで列挙型を使用するC#
hすべてのボディはc#.netで列挙型を使用しており、データのセットは
Windows 10のiisで約300項目です:
列挙型を次のように使用すると:
結果が間違っていて、このように使用すると
答えが変わり、また間違っています:-)
私はiisで問題を追跡しようとしていますが、その作業を正しく表現しています.iisでテストしているときは常にプログラムが発生します
。誰もが私を助けることができますか?
java - 2 種類の Enum のいずれかから EnumSet をインスタンス化する
私はこれらの2つの列挙型を次のように宣言しています:
ここに見られるように、どちらもこのインターフェースを実装しています。
ここでは、Enum1 または Enum2 からすべての要素を取得する EnumSet を含むクラスを定義しています。これは、パラメーターとしてインデックスを持つメソッドを介して定義されます。このようなもの:
さて、どうにかしてこれを達成するためにジェネリックを使用しなければならないことはわかっていますが、それについて十分に精通していないため、正確に行う方法がわかりません。少し教えていただければ幸いです。
ご回答ありがとうございます。
java - Javaにネストされた列挙型のようなものはありますか?
州にアクセスできる Country 列挙型を実行したいのですが、どうすればよいですか?
このようなもの: