本文共 1708 字,大约阅读时间需要 5 分钟。
java代码
@SpringBootTest(classes = {ShujiegouApplication.class})@RunWith(SpringJUnit4ClassRunner.class)public class FansheTest { @Test public void test1() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { SysColumn sysColumn = new SysColumn(); sysColumn.setId(1); sysColumn.setColumnName("孙悟空"); sysColumn.setParentId(2); sysColumn.setColumnRank(3); sysColumn.setEnName("斗战胜佛");// 1.获取类对象 Class guruClass = sysColumn.getClass();// 2.类对象获取属性对象数组(所有的属性) Field[] guruFields = guruClass.getDeclaredFields(); for (Field field:guruFields) {// System.out.println(field); System.out.println(field.getName()); } for (int i = 0; i < guruFields.length; i++) { //3.获取属性名 String guruFieldName = guruFields[i].getName();// 4.拼接出来get方法名 String getMethodName = "get"+guruFieldName.substring(0,1).toUpperCase()+guruFieldName.substring(1);// 5.通过方法名调用方法 获得方法返回值// 参数 方法名 参数类型(可变长参数) get方法没有 就写成空 Method getMethod = guruClass.getDeclaredMethod(getMethodName, null);// 执行该方法 参数 1.当前类对象所对应的对象 2.被调用方法所需要的参数 (可变长参数 数组) Object invoke = getMethod.invoke(sysColumn, null); System.out.println(invoke); } }}
运行后
idcolumnNameparentIdcolumnRankenName1孙悟空23斗战胜佛
输出的是属性名和属性值。
对应的实体类@Data@AllArgsConstructor@NoArgsConstructor@Table(name = "sys_column")public class SysColumn { @Id private Integer id; private String columnName; private Integer parentId; private Integer columnRank; private String enName;}
这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!
欢迎加入技术群聊!
转载地址:http://rzoai.baihongyu.com/