0

私はC++のようなポインタが必要な状況を見つけましたが、JAVAにあります。誰かが私を助けることができるように、私は正確な状況を説明するつもりです:

私はビデオゲームを開発しています。その中に、あなたにいくつかのアイテムを与えるいくつかの胸があります。あなたが持っているアイテムの量は、それが重要ではない一般的なオブジェクトに保存されます。場合によっては、どのオブジェクトがプレーヤーに提供されるかを示すことができる汎用チェストオブジェクトを1つだけ作成し、それを開くと、汎用オブジェクトの数量が合計されます。問題は、どの種類のオブジェクトが合計されるかをチェックする場所で、胸のオブジェクトの内部にある巨大なスイッチを使用したくないということです。その代わりに、ジェネリックオブジェクトの整数へのポインタをオブジェクトに与えて、簡単に合計できるようにします。

これはJAVAで可能ですか?そうでない場合...簡単な方法でそれを行うためのヒントはありますか?ありがとう!

4

2 に答える 2

2

すべてを個別のフィールドとして保存するのではなく、プレーヤーのインベントリ(おそらく「重要ではない一般的なオブジェクト」)を動的にします。たとえば、アイテムタイプ識別子からカウントへのマップを使用し、カウントへの「ポインタ」を保存する代わりに、アイテムタイプ識別子を胸部オブジェクトに保存し、それを使用して在庫の正しいカウントをインクリメントします。

どうしてもすべてを別々のフィールドに格納する必要がある場合は、getCount/setCountメソッドを持つ単純な整数ではなくオブジェクトにします。次に、代わりにそのオブジェクトを胸に渡します。ただし、これを行う場合は、最初にインスタンス化されたときに胸を正しいオブジェクトに渡すために、とにかく大きなスイッチが必要になる可能性があります。

于 2012-12-30T19:47:23.127 に答える
0

私はあなたの要件が何であるかを本当に理解したとは言えませんが(英語は私の母国語ではありません)、インターフェースはあなたが探しているものであるように私には思えます。質問に戻りますが、開発者が直接モード(ヒープメモリ)で非JVMメモリにアクセスできるようにするいくつかの調整があります。詳細については、ApacheDirectMemoryを参照してください。

于 2012-12-30T19:47:12.187 に答える