2

キャッシュDBを取得するときに、キャッシュデータベースにデータがあります。キーにアルファベットと数字、または数字の組み合わせが含まれている場合、データを取得できます。数字のみの単一のキーの場合、そうではありません。リスト内のデータを表示できても、データを取得できます。

Map (ele): list
2222222 = 
200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

GC2 = 
200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

Map (ele): get GC2
 200:20:2:2:1:1:Thu Feb 02 00:00:00 2012:2:Thu Feb 02 00:00:00 2012:Thu Feb 02 00:00:00 2012

Map (ele): get 2222222
null

getで数字だけを指定すると、nullになります。

誰かアイデアはありますか?

4

1 に答える 1

2

キーをString型と定義し、コヒーレンスサーバーの内部動作のために数字のみが含まれている場合、nullを返します。

要するに

文字列として定義されたキー-キーに英数字が含まれています-WORKS

文字列として定義されたキー-キーにはアルファベットのみが含まれます-WORKS

文字列として定義されたキー-キーには数字のみが含まれています-機能しません

つまり、データをキャッシュに入れる前に、キーに数字のみが含まれているかどうかをチェックしました。

if (code.matches("[0-9]+")) 

はいの場合はキーを整数として保存し、そうでない場合は文字列として保存します。

これで、すべてのケースの値を取得できるようになりました。

別の解決策-

キーを整数として格納する代わりに、文字列として格納されている数値であっても、getを実行している間

取得\111

これも正しい値を取得します

于 2013-03-27T09:28:34.610 に答える