Here you can find the source of coerce(Object obj, Class> c)
public static Object coerce(Object obj, Class<?> c)
//package com.java2s; /** //from w ww.j a va 2 s. c o m * Copyright 2012 Rafal Lewczuk <rafal.lewczuk@jitlogic.com> * * ZORKA is free software. You can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * ZORKA is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * ZORKA. If not, see <http://www.gnu.org/licenses/>. */ public class Main { public static Object coerce(Object obj, Class<?> c) { if (obj == null || c == null) { return null; } if (obj.getClass() == c) { return obj; } if (c == Long.class) { return (obj instanceof String) ? Long.parseLong(obj.toString().trim()) : ((Number) obj).longValue(); } if (c == Integer.class) { return (obj instanceof String) ? Integer.parseInt(obj.toString().trim()) : ((Number) obj).intValue(); } if (c == Double.class) { return (obj instanceof String) ? Double.parseDouble(obj.toString().trim()) : ((Number) obj).doubleValue(); } if (c == Short.class) { return (obj instanceof String) ? Short.parseShort(obj.toString().trim()) : ((Number) obj).shortValue(); } if (c == Float.class) { return (obj instanceof String) ? Float.parseFloat(obj.toString().trim()) : ((Number) obj).floatValue(); } if (c == String.class) { return "" + obj; } if (c == Boolean.class) { return coerceBool(obj); } return null; } public static boolean coerceBool(Object obj) { return !(obj == null || obj.equals(false)); } }