Java 如何从HashMap获取BigDecimal<;字符串,对象>;在Drools 5.4.0中

Java 如何从HashMap获取BigDecimal<;字符串,对象>;在Drools 5.4.0中,java,drools,Java,Drools,我用地图来说明情况。 我的目标是: public class TestTO implements Serializable { private String resultStr; private List resultList; private Map resultMap; private Map parameterMap; ... ... } 执行Drools规则: public static Map getMapResult(TestTO rulesTo) throws Excep

我用地图来说明情况。 我的目标是:

public class TestTO implements Serializable {

private String resultStr;

private List resultList;

private Map resultMap;

private Map parameterMap;
... ...
}
执行Drools规则:

public static Map getMapResult(TestTO rulesTo) throws Exception {
    StatelessKnowledgeSession kSession = getKnowledgeSession();
    AgendaEventListener ael = mock( AgendaEventListener.class );
    kSession.addEventListener(ael);
    kSession.execute(rulesTo);
    Map resultMap = rulesTo.getResultMap();
    if (resultMap != null && !resultMap.isEmpty())
        return resultMap;
    else throw new RuntimeException("EMPTY");
}
我的测试方法:

public void TestA() throws Exception{
Map<String, Object> test= new HashMap<String, Object>();
test.put("str1", "0");//string
test.put("str2", "SC");//string
test.put("dec1", new BigDecimal(372));//bigdecimal
TestTO m = new TestTo();
m.setParameterMap(test);
for(int i=0;i<22;i++){
    m.setResultMap(new HashMap<String, Object>());
    Map result=RuleTest.getMapResult(m);
  }
}
public void TestA()引发异常{
Map test=newhashmap();
test.put(“str1”,“0”);//字符串
test.put(“str2”,“SC”);//字符串
test.put(“dec1”,新的BigDecimal(372));//BigDecimal
TestTO m=新的TestTO();
m、 setParameterMap(测试);
对于(int i=0;i=300
),它有一些问题

2.
到.getParameterMap()[“gt”]>=300B
。也许可以

为什么第二个可以(我想)

我不必为drools方言指定默认值,所以我认为默认值是“java”

java方言是否支持
300B


非常感谢!

假设带有键“dec1”的
条目始终是一个大十进制:

Entry(key == "dec1", $val : value) from myMap.entrySet()
$bigD : BigDecimal() from $val

我认为这是对的……它为我编译,但我觉得很懒,所以我还没有编写测试来证明它。

如果现在所有对象都是BigDecimal,为什么不直接强制转换它呢?另一种方法是询问它是否是带有Object.getClass()的BigDecimal不是每个对象,只有1-3是BigDecimal。我只是想知道300B是正确的还是不正确的。@LeopFlug因为我不知道,可能不知道。如果要检查BigInteger是否更大,必须使用它的方法。对不起,如何使用excel文件编写它。