Java中PhoneNumber的自定义格式化程序
我正在尝试为电话号码格式创建自定义注释Java中PhoneNumber的自定义格式化程序,java,spring,annotations,customization,Java,Spring,Annotations,Customization,我正在尝试为电话号码格式创建自定义注释 @Target({ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface ContactNumberFormate { } BeanPostProcessor实现: @Component public class PhoneFormatter implements BeanPostProcessor { priv
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ContactNumberFormate {
}
BeanPostProcessor实现:
@Component
public class PhoneFormatter implements BeanPostProcessor {
private Object beanIs;
private PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
@Override
public Object postProcessBeforeInitialization(Object bean, String s) throws BeansException {
if (bean.getClass().isAnnotationPresent(ContactNumberFormate.class)) {
beanIs = bean.getClass();
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String s) throws BeansException {
String phone = "";
String locale = "";
try {
phone = (String) beanIs.getClass().getDeclaredField("phone").get(bean);
locale = (String) beanIs.getClass().getDeclaredField("locale").get(bean);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
//Other code//
return formattedPhoneNumber;
}
}
但是对于“beanIs=bean.getClass()”我捕获了NullPointedException
完整日志:
java.lang.NullPointerException
at ru.spb.dreamwhite.util.phoneUtil.PhoneFormatter.postProcessAfterInitialization(PhoneFormatter.java:33)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:431)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1807)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
您可以参考这个git存储库。请粘贴完整的异常日志