From 90ccd6c40ea3e6e2fd6883fd12f6a4da8e465a6b Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Thu, 12 Feb 2015 13:36:14 +0100 Subject: [PATCH] Use string switch/case in IntrospectionProvider --- .../smack/provider/IntrospectionProvider.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java index 0212b355a..16a140616 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java @@ -117,25 +117,21 @@ public class IntrospectionProvider{ * @throws ClassNotFoundException */ private static Object decode(Class type, String value) throws ClassNotFoundException { - if (type.getName().equals("java.lang.String")) { + String name = type.getName(); + switch (name) { + case "java.lang.String": return value; - } - if (type.getName().equals("boolean")) { + case "boolean": return Boolean.valueOf(value); - } - if (type.getName().equals("int")) { + case "int": return Integer.valueOf(value); - } - if (type.getName().equals("long")) { + case "long": return Long.valueOf(value); - } - if (type.getName().equals("float")) { + case "float": return Float.valueOf(value); - } - if (type.getName().equals("double")) { + case "double": return Double.valueOf(value); - } - if (type.getName().equals("java.lang.Class")) { + case "java.lang.Class": return Class.forName(value); } return null;