-
【Flex】请教如何遍历类的所有属性和方法?10
请教Flex(AS3)中如何遍历类的所有属性和方法?
我想做一个类似Java中的BeanUtils.copyProperties
首先不知道是否有前人已经完成了类似的工具?如果有当然最好。
或者,如何取得一个Object中所有的可见(public)属性和getter/setter方法?
类似Java中的 Class.getMethods()
问题补充:
思路是这样的,请1楼的TX给出具体的函数名呀?我就是不知道如何得到所有的属性名?
问题补充:
老大,您这是Java吧!
我要的可是Flex的AS3!!
2008年12月04日 17:44
6个答案 按时间排序 按投票排序
-
可以使用ObjectUtil类的getClassInfo函数
代码如下:
public static function copyProperty(objTo:Object, objFrom:Object):void{ if(objTo == null || objFrom == null) return; var claInfo:Object = ObjectUtil.getClassInfo(objTo); var props:Array = claInfo["properties"]; for each(var q:QName in props){ try{ if(objFrom.hasOwnProperty(q.localName)){ objTo[q.localName] = objFrom[q.localName]; } }catch(err:Error){} } }
通过ObjectUtil.getClassInfo(obj)获取某个对象的类信息,类的属性和方法都放在返回的对象的'properties'属性数组中,通过遍历该数组就可以遍历类的属性和方法,
2008年12月19日 15:07
-
public class Reflection { private List allGenericFields ; /** * 查找出clazz的声明属性 以及 父类的声明属性 * @param clazz * @return */ public List<Field> getFields(Class clazz){ allGenericFields = new ArrayList();//防止重复调用该方法 出现脏值 return _getFields(clazz); } /** * 查找出clazz的声明属性 以及 父类的声明属性 * @param clazz * @return */ private List<Field> _getFields(Class clazz) { // 如果clazz为空则直接返回 if (clazz == null) return this.allGenericFields; Object parent = clazz.getGenericSuperclass(); // 如果有父类并且父类不是Object 则递归调用 if (parent != null && !((Class) parent).getName().equals("Object")) { this._getFields((Class) parent); } Field[] fields = clazz.getDeclaredFields(); if (fields != null) {// 如果clazz存在声明的属性 for (int i = 0; i < fields.length; i++) this.allGenericFields.add(fields[i]); } // 存在父类则递归调用 return this.allGenericFields; } /** * 查找出clazz的 所有public方法 * @param clazz * @return List<Method> * @throws NoSuchFieldException * @throws SecurityException * @throws NoSuchMethodException */ public List<Method> getMethods(Class clazz) { // 如果clazz为空则直接返回 if(clazz==null) return null; List listMethods = new ArrayList(); Method[] methods = clazz.getMethods(); for(int i = 0 ; i<methods.length ; i++){ listMethods.add(methods[i]); } return listMethods; } /** * 执行对象方法 * @param obj * @param methodName * @return * @throws IllegalArgumentException * @throws SecurityException * @throws IllegalAccessException * @throws InvocationTargetException * @throws NoSuchMethodException */ public Object invokeMethod(Object obj,String methodName) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException{ return obj.getClass().getMethod(methodName).invoke(obj); }
2008年12月04日 21:37
-
反射中可以获得 类的所有属性
通过获得的每个属性 有一个方法可以获得 该属性的修饰(public private ....)
通过这个条件来塞选就行了。。。。
get set 方法直接用 属性名! 前一个字母大写 拼接get and set;
自己做个判断看看该方法名存不存在就OK了2008年12月04日 20:08
相关推荐
<?xml version="1.0" encoding="utf-8"?> creationComplete="service.send()" > <![CDATA[ import mx.controls.Alert;... import mx.rpc.events.FaultEvent;... import mx.collections.ArrayCollection;...
在给定的标题和描述中,`flex array`、`搜索`和`遍历`是关键概念,而提供的代码段展示了如何实现这个功能。 `flex array`指的是在Flex应用中使用的数组,它与标准的AS3数组类似,但提供了更丰富的功能,例如动态...
4. **动画效果**:Flex可以利用Tween类和Timeline类实现平滑的动画效果,比如物品移动、选中高亮等,增加游戏的趣味性。 5. **状态管理**:游戏可能有多个阶段或状态,Flex的State机制可以方便地切换UI布局和行为,...
而flex属性则是flex-grow, flex-shrink, flex-basis的简写形式,是控制元素伸缩和默认大小的常用属性。 justify-content属性用于定义Flex容器内的元素在主轴上的对齐方式,常见的值包括flex-start(起始位置对齐)...
动画演示flex布局,包括flex父容器属性以及flex布局子元素属性 flex父容器属性有: 一. flex-direction 主轴方向 row:从左到右 row-reverse:从右到左 column:从上到下 column-reverse:从下到上 二. flex-wrap 子元素...
在Flex编程中,有时我们需要遍历一个Object对象的键(keys)和值(values),以进行数据处理或显示。在ActionScript 3.0中,这是通过循环结构来完成的。下面将详细介绍如何使用Flex遍历Object的键和值。 首先,让...
在移动Web开发中,弹性布局(Flex布局)已经成为构建响应式和动态界面的标准方法。它允许开发者更加灵活地控制元素的排列、对齐和尺寸调整,以适应不同屏幕大小和设备方向。标题“flex属性演示”暗示我们将深入探讨...
3. **Flex增长和收缩(Flex Grow and Shrink)**:通过flex-grow和flex-shrink属性,可以控制Flex项目在空间充足或不足时如何分配额外空间或缩小。源文件中的CSS可能会设定项目的增长和收缩比例。 4. **Flexbasis...
本文内容叙述撇开以往顺流而下的方式,直接以 box-flex 属性为切入口,直 入大本营,再铺开叙述。 有道桌面词典显示,”flex”一词中文有“收缩”之意。不过,从此属性实际上产 生的效果来看,无论怎样用“收缩”一...
本文将深入探讨Flex组件及其相关的CSS样式属性,帮助开发者更好地理解和应用Flex布局。 一、Flex容器属性 1. `display`: 这是开启Flex布局的关键属性。设置为`flex`或`inline-flex`可以使一个元素成为Flex容器,...
详述了flex布局下父级flex container及子元素flex item的相关属性,具体介绍了flex-direction、flex-wrap等关键属性,并详细阐述justify-content、align-items等排列与对齐的方式及其对页面的影响。 适合人群:前端...
综上所述,"FLEX HashMap遍历并取到需要的值"的知识点主要涉及了Java中的HashMap数据结构、遍历方法、迭代器模式以及类型转换等概念。通过这些知识点,开发者可以灵活地在项目中使用HashMap进行高效的数据操作。
在Flex编程中,遍历Object对象内容是常见的需求,特别是在处理动态数据或进行对象属性检查时。本篇文章将深入探讨如何在Flex中遍历Object对象的内容,并提供相关的实现代码示例。 首先,让我们理解Flex中的Object类...
你可以通过设置其几何形状、样式和属性来定制图形。 7. ServiceLayer类:用于与服务器进行数据交互,如加载WMS、WFS服务数据到地图上。这使得MapABC Flex API能够集成不同来源的地理数据。 8. Popup类:用于创建和...
在Flex开发中,深入理解方法调用顺序是至关重要的,特别是在构建复杂的用户界面和应用程序时。Flex是一个基于ActionScript和MXML的开源框架,用于创建富互联网应用(RIA)。本篇我们将探讨Flex中方法调用的顺序,...
当在Java项目中有一个`save(User user)`方法,接收一个User类型的JavaBean作为参数时,要在Flex端调用此方法,我们需要在ActionScript中创建一个与Java User类属性和方法对应的User类。这样做是为了确保数据在Flex和...
- 此方法适用于去除Flex Chart中的水印,但不一定适用于所有Flex Builder生成的应用程序。 - 在正式发布应用程序前,应确保所有使用的组件都已经获得了正确的许可证。 通过以上步骤,可以有效地去除Flex Builder...
总结,Flex和AS3之间的互相调用是通过MXML组件的属性和方法、AS3类的实例化以及事件监听和派发来实现的。理解这种交互方式对于构建高效、可扩展的Flex应用至关重要。同时,使用如`FlexComponentKit_v4.mxp`这样的...
一个类可以继承自另一个类,从而获取父类的属性和方法。这种继承关系有助于减少代码重复,提高代码复用。例如,`Button`类可能继承自`UIComponent`类,`UIComponent`又可能继承自`DisplayObject`类,形成了一条从...
然后其所有的直接子元素就变成flex子元素了,在flex里存在两根轴,叫主轴和交叉轴,互相垂直,主轴默认水平,flex子元素默认会沿主轴排列,可以控制flex子元素在主轴上伸缩,主轴方向可以设置,相关的css属性分为两...