android反射功能,使用对象的功能,通过反射在Java中的Android

Image image = (Image) picture.get(); // from Field to the object which is stored in the field

Method method = image.getClass().getDeclaredMethod("Resize", (Class>[]) null);

method.invoke(image, (Object[]) null);

这也适用于调用方法不带参数。 如果您的方法“调整大小”需要参数,您必须将它们的类型提供给调用以检索方法以及将参数传递给调用。

方法用于研究类的方法的反思对象,调用“调用”的一个方法 - 对象需要作为参数调用传递目标对象。 传递给getDeclaredMethod的Class []参数代表你想调用因为有可能不止一个方法具有相同的名称但不同的参数和参数类型(超载),说无效调整大小()的方法,无效调整大小的签名( int x,int y)。 调用调用与直接调用对象上的方法相似,因此您需要提供常规调用中的参数。 因为反射API必须提供调用你的方法的一个通用的方法,这种参数必须转换为Oject [],可想而知,否则Method.invoke 的重载必须是可用于任何方法签名,因为这包括你的自己定义的类类型,这是不可能的。 (好吧,如果在运行时生成类并在某些情况下调查代码之后生成类,那么动态类装入将不得不重新生成,加载和编译以及链接Method - 类,这将会是某种矫枉过正)。

但的确,在这种情况下,你们都知道你的对象的确切类型和你想要调用的方法(哪个不会改变),我宁愿推荐你将该字段的值转换为Image,然后调用调整大小在该对象上,像这样:

图片图像=(图像)picture.get(); image.Resize();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值