package edu.fudan.ml.loss; public class ZeroOneLoss implements Loss { private float calc(Integer i1, Integer i2) { return i1==i2?0:1; } private float calc(String l1, String l2) { return l1.equals(l2)?0:1; } public float calc(Object l1, Object l2) { if (!l1.getClass().equals(l2.getClass())) { throw new IllegalArgumentException("Exception in ZeroOneLoss: l1 and l2 have different types"); } float ret = 0; if (l1 instanceof Integer) { ret = calc((Integer)l1, (Integer)l2); }else if (l1 instanceof String) { ret = calc((String)l1, (String)l2); } return ret; } }