@SuppressWarnings("unchecked") private void init() { if (tclass == null) { tclass = (Class<T>)tobj.getClass(); } for (Method m : tclass.getMethods()) { if (isGetter(m)) { getters.put(getPropertyName(m), m); } else if (isSetter(m)) { setters.put(getPropertyName(m), m); } } // check type equality for getter-setter pairs Set<String> pairs = new HashSet<>(getters.keySet()); pairs.retainAll(setters.keySet()); for (String accessor : pairs) { Class<?> getterClass = getters.get(accessor).getReturnType(); Class<?> setterClass = setters.get(accessor).getParameterTypes()[0]; if (!getterClass.equals(setterClass)) { throw new IllegalArgumentException(String .format("Accessor '%s' type mismatch, getter type is %s while setter type is %s", accessor, getterClass.getName(), setterClass.getName())); } } }
@SuppressWarnings("unchecked") private void init() { if (tclass == null) { tclass = (Class<T>)tobj.getClass(); } for (Method m : tclass.getMethods()) { if (isGetter(m)) { getters.put(getPropertyName(m), m); } else if (isSetter(m)) { setters.put(getPropertyName(m), m); } } // check type equality for getter-setter pairs Set<String> pairs = new HashSet<>(getters.keySet()); pairs.retainAll(setters.keySet()); for (String accessor : pairs) { Class<?> getterClass = getters.get(accessor).getReturnType(); Class<?> setterClass = setters.get(accessor).getParameterTypes()[0]; if (!getterClass.equals(setterClass)) { throw new IllegalArgumentException(String .format("Accessor '%s' type mismatch, getter type is %s while setter type is %s", accessor, getterClass.getName(), setterClass.getName())); } } }
@SuppressWarnings("unchecked") private void init() { if (tclass == null) { tclass = (Class<T>)tobj.getClass(); } for (Method m : tclass.getMethods()) { if (isGetter(m)) { getters.put(getPropertyName(m), m); } else if (isSetter(m)) { setters.put(getPropertyName(m), m); } } // check type equality for getter-setter pairs Set<String> pairs = new HashSet<String>(getters.keySet()); pairs.retainAll(setters.keySet()); for (String accessor : pairs) { Class<?> getterClass = getters.get(accessor).getReturnType(); Class<?> setterClass = setters.get(accessor).getParameterTypes()[0]; if (!getterClass.equals(setterClass)) { throw new IllegalArgumentException(String .format("Accessor '%s' type mismatch, getter type is %s while setter type is %s", accessor, getterClass.getName(), setterClass.getName())); } } }