package org.nutz.el.opt.arithmetic; import org.nutz.el.opt.TwoTernary; /** * "-" * @author juqkai(juqkai@gmail.com) * */ public class SubOpt extends TwoTernary{ public String fetchSelf() { return "-"; } public int fetchPriority() { return 4; } public Object calculate() { Number lval = (Number) calculateItem(this.left); Number rval = (Number) calculateItem(this.right); if(rval instanceof Double || lval instanceof Double){ return lval.doubleValue() - rval.doubleValue(); } if(rval instanceof Float || lval instanceof Float){ return lval.floatValue() - rval.floatValue(); } if(rval instanceof Long || lval instanceof Long){ return lval.longValue() - rval.longValue(); } return lval.intValue() - rval.intValue(); } }