### Question:
BeanJsonConverter implements BeanConverter { @VisibleForTesting protected static String getPropertyName(Method setter) { JsonProperty property = setter.getAnnotation(JsonProperty.class); if (property == null) { String name = setter.getName(); if (name.startsWith("set") && !Modifier.isStatic(setter.getModifiers()) && !setter.isBridge()) { return name.substring(3, 4).toLowerCase() + name.substring(4); } return null; } else { return property.value(); } } @Inject  BeanJsonConverter(Injector injector); String getContentType(); String convertToString(final Object pojo); void append(Appendable buf, Object pojo); @SuppressWarnings("unchecked") // Class.cast() would be better - but the Class object may be null T convertToObject(String string, Class<T> clazz); @SuppressWarnings("unchecked") T convertToObject(String json, Type type); Object convertToObject(Object value, Type type);  }### Answer:
@Test public void testGetPropertyNameOfBridgeMethod() throws NoSuchMethodException, SecurityException { Method bridgeSetter = GenericObject.class.getMethod("setT", Object.class); assertNull(BeanJsonConverter.getPropertyName(bridgeSetter)); Method realSetter = GenericObject.class.getMethod("setT", String.class);; assertEquals("t", BeanJsonConverter.getPropertyName(realSetter)); }