java getmethod 使用_java – 使用子类作为方法参数调用getMethod「建议收藏」

java getmethod 使用_java – 使用子类作为方法参数调用getMethod「建议收藏」是否可以调用一个方法,其中参数对象或参数类是一个子类,并且该方法本身将超类作为参数?我试图调用这个方法publicvoidsetNewProblem(Problemproblem);具体实现了抽象类的问题.不幸的是,我得到了NoSuchMethodException异常.我调用这样的调用:Methodmethod=model.getClass().getMethod(“set”+p…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

是否可以调用一个方法,其中参数对象或参数类是一个子类,并且该方法本身将超类作为参数?

我试图调用这个方法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://codeday.me/bug/20190831/1774918.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190408.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • BT Tracker服务器_bt服务器

    BT Tracker服务器_bt服务器有时候用BT软件下载文件的时候,经常会碰到没速度的情况,这个时候你就需要设置BTTracker服务器地址了。网上有人专门做了一个列表放在github上面,不定时更新。BitComet软件可以直接添加URL,然后设置启动时更新。项目地址:https://github.com/ngosang/trackerslist(长期更新)trackers_best(20tracker…

  • ITDSD- 3.分布式工程学综述

    ITDSD- 3.分布式工程学综述英文版地址:ITDSD-3.OverviewofDistributedEngineeringSunshuo(sun.shuo@aliyun.com)导论这是关于分布式架构新手入门的第三篇文章。这一篇文章主要简要的介绍分布式工程学在理论上的基本概念,历史和现状,以及未来发展方向。让大家能够了解为什么学习分布式工程学。分布式工程学在计算机科学中的地位,以及分布式工程学要解决的问…

  • tomcat日志乱码怎么解决_log4j日志乱码

    tomcat日志乱码怎么解决_log4j日志乱码1.首先打开tomcat的conf目录下的logging.properties根据编译码去切换,例如你的编译器是utf-8的话,你就可以不用改(里面默认的是utf-8),如果你的编译器是GBK的话,那就把utf-8全部替换成GBK。2.idea设置-Dfile.encoding=UTF-8接着打开help的VMOptions最后重启idea就可以啦!…

  • SpringMVC日期时间格式化方式

    SpringMVC日期时间格式化方式###引入平时,在写前端页面时,很有可能会涉及到表单中有日期的情况,一般情况下不同的业务使用的日期格式都有所不同。下面看下一个简单的例子说明SpringMVC对日期的处理。jsp页面如下(简单的表单,其中有一个输入框中输入的是日期时间):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncodin

  • MFC进度条控件(六)

    MFC进度条控件(六)程序功能:点击按键进度条前进到满格。(一)初始化//TODO:在此添加额外的初始化代码 m_progress.SetRange32(0,100);//设置进度条最小和最大值按键函数入口双击按键(二)按键函数voidCMFCday5ADlg::OnBnClickedButton1(){ //TODO:在此添加控件通知处理程序代码 SetTimer(1,100,NULL);//设置定时器1,每次计时100毫秒就定时到 GetDlgItem(IDC_BUTTON1)-&g

  • pyqt5 lineedit_pyqt5 tablewidget

    pyqt5 lineedit_pyqt5 tablewidgetQLineEditQLineEdit类中常用的方法如下表方法描述setAlignment()按固定值方式对齐文本Qt.AlignLeft:水平方向靠左对齐Qt.AlignRight:水平方向靠右对齐Qt.AlignCenter:水平方向居中对齐Qt.AlignJustify:水平方向调整间距两…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号