级联属性赋值|学习笔记

开发者学堂课程【Java 高级编程级联属性赋值】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/390


级联属性赋值


现在已经成功的实现级联的对象实例化处理,那么随后就需要去考虑级联的属性的设置了,在之前考虑级联对象实例化处理的时候会发现,循环的时候都是少了一位的。

 ​​//最后一位肯定是指定类中的属性名称,所以不在本次实例化处理的范畴之内

for (int y = 0 ; y < temp.length - 1 ; y ++) { //实例化

//调用相应的getter方法,如果getter方法返回了null表示该对象未实例化

Method getMethod = currentObject.getClass().getDeclaredWethod("get" + StringUtils.initcap

object tempobject = getMethod.invoke( current0bject) ;

if (tempobject == nul1){//该对象现在并没有实例化

Field field = currentObject.getclass().getDeclaredField(temp[y]) ; //获取属性类型

Method method = currentobject.getclass().getDeclared

Method("set" + Stringutils.initcap(tempIobject newObject =

field.getType().getDeclaredConstructor( ).newInstance()

method.invoke( currentobject,newObject) ;

currentobject = newObject ;

}else {

currentobject = tempobject ;

}

当此时代码循环处理完成之后,currentObject 表示的就是可以。

进行 setter 方法调用的对象了,并且理论上该对象一定不可能为 mull, 随后就可以按照之前的方式利用对象进行 setter 调用。

范例:实现对象的级联属性设置

//进行属性内容的设置

Field field = currentObject.getclass().getDeclaredField(temp[temp.length - 1]) ;//获取成员

Method setMethod = currentObject.getclass().getDeclaredMethod("set" + StringUtils.initcap(temp

object convertValue = BeanUtils.

convertAttributeVaLue(field.getType( ) .getName(), attval[1]) ;

setMethod.invoke( currentobject, convertValue) ;//调用

setter方法设置内容


在以后的开发之中简单 Java 类的赋值处理将不再重复调用 setter 操作完成,而这种处理形式是在正规开发中普遍采用的方式。

级联属性赋值|学习笔记

上一篇:龙蜥社区成立硬件兼容性测试SIG,推动全产业链生态繁荣发展


下一篇:QML学习笔记(十)-TabView-竖直方向