Java 根据bean字段名获取bean属性的名称
Posted wb54979
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 根据bean字段名获取bean属性的名称相关的知识,希望对你有一定的参考价值。
/**
* 根据匿名函数,获取bean 属性名称 <br>
* <li>BeanMapUtils.getBeanFunName(UserInfoDO::getCreateTime) = createTime</li>
* <li>BeanMapUtils.getBeanFunName(UserInfoDO::isOk) = ok</li>
*
* @date 2021-06-04 15:54
*/
public static <T> String getBeanFunName(Property<T, ?> property)
try
Method declaredMethod = property.getClass().getDeclaredMethod("writeReplace");
declaredMethod.setAccessible(Boolean.TRUE);
SerializedLambda serializedLambda = (SerializedLambda) declaredMethod.invoke(property);
String method = serializedLambda.getImplMethodName();
String attr;
if (method.startsWith("get"))
attr = (char) (method.charAt(3) + 32) + method.substring(4);
else if (method.startsWith("is"))
attr = (char) (method.charAt(2) + 32) + method.substring(3);
else
throw new IllegalStateException("无法处理的方法名" + method);
return attr;
catch (ReflectiveOperationException e)
throw new RuntimeException(e);
public interface Property<T, R> extends Function<T, R>, Serializable
以上是关于Java 根据bean字段名获取bean属性的名称的主要内容,如果未能解决你的问题,请参考以下文章