1

私は次のような地図を持っています

Map<BigDecimal, String> functions = new HashMap<BigDecimal, String>();

JSF ページから map の値にアクセスしようとすると、何も表示されません。マップのサイズを確認したところ、数値が返されました。空ではないようです。これがJSFページコードです

<p:dataTable value="#{bean.permissions}" var="permission">  
    <p:column>
        #{bean.functions[permission.functionId]}   
    </p:column>                     
</p:dataTable>

これはどのように発生し、どうすれば解決できますか?

4

2 に答える 2

5

同じ数値を表している場合でも、スケールが等しくない場合、2 つの BigDecimal は等しくありません。そのため、適切なマップ キーを作成できない場合があります。

同じ値を異なるスケールで表す 2 つの BigDecimal の場合、compareTo() は 0 を返しますが、equals() は false を返します。

于 2015-06-28T00:49:02.197 に答える