java getmethod 使用_java – 使用子类作为方法参数调用getMethod「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。
是否可以调用一个方法,其中参数对象或参数类是一个子类,并且该方法本身将超类作为参数?
我试图调用这个方法public void setNewProblem(Problem problem);具体实现了抽象类的问题.不幸的是,我得到了NoSuchMethodException异常.
我调用这样的调用:
Method method = model.getClass().getMethod(“set” + propertyName, new Class[] { newValue.getClass() });
method.invoke(model, newValue);
如果我将newValue.getClass()更改为Problem.class,一切正常.任何想法如何将子类传递给public void setNewProblem(问题);?
解决方法:
你必须要问它的确切类型.这是因为您可以拥有多个可能的重载方法,并且需要准确了解您想要的内容.
所以你可以用一个子类来调用,但你不能在不在那里的情况下要求一个子类.
您可以做的是查看所有方法并找到匹配项.
如果您需要的只是属性的setter或getter,我建议您查看BeanIntrospector,它将找到该属性的所有属性和getter / setter方法.
标签:superclass,invoke,java,reflection,subclass
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190408.html原文链接:https://javaforall.cn
相关文章
- JAVA的使用_Java集成开发环境
- 【说站】java泛型方法的使用注意
- 【说站】Java从resources读取文件内容的方法有哪些
- php getrealpath,java_java 获取路径的各种方法(总结),(1)、request.getRealPath(“/”);//不推 – phpStudy…
- java 数字信封_【Java密码学】使用Bouncy Castle生成数字签名、数字信封
- Java String 的 常量池 和 intern 方法 简析
- 【Unity3D】Android Studio 工程中使用 Java 代码调用 Unity 的 C# 脚本 ( Java 中调用 UnityPlayer#UnitySendMessage 方法 )
- Java通过反射调用方法详解编程语言
- 使用Java在Linux系统上开发:一步步安装全部组件(java环境linux)
- Java List.removeAll()方法:从列表中移除所有元素
- Linux下部署Java项目实践(linux部署java项目)
- 控制Redis实现Java过期控制的方法(redisjava过期)
- 实现Java实现Redis锁的研究与应用(redis锁java)
- Deploying Java on Linux: A Simple Guide for Beginners.(linux上部署java)
- 如何使用Java备份Oracle数据库?(java备份oracle)
- Linux系统中下载Java的方法(linux下java下载)
- java使用Weka、Linux和Java构建强大的数据分析系统(weka linux)
- 使用Java监听MySQL数据库变化(java监听mysql)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- Oracle数据库中调用Java实现可扩展应用程序(oracle内嵌java)
- Java数据库之MySQL学习使用教程(mysql中java教程)
- 进行操作学会使用Java玩转Redis(在java中队redis)
- Java中去除字符串中所有空格的几种方法
- java通过共享变量结束run停止线程的方法示例
- java用静态工厂代替构造函数使用方法和优缺点