当前位置: 首页 > news >正文

建筑师网站东莞seo网站制作报价

建筑师网站,东莞seo网站制作报价,做搜狗pc网站软件,网站建设ppt百度文库记录:473 场景:使用java.lang.reflect.Method和java.lang.Class类,根据Java反射原理实现使用指定字符串类名和方法名称,调用对应对象和对应方法。 版本:JDK 1.8。 1.使用Java反射调用指定类的指定方法 (1)参数说明…

记录:473

场景:使用java.lang.reflect.Method和java.lang.Class类,根据Java反射原理实现使用指定字符串类名和方法名称,调用对应对象和对应方法。

版本:JDK 1.8。

1.使用Java反射调用指定类的指定方法

(1)参数说明

String className, 字符串类型,需反射的类的全路径。

String methodName, 字符串类型,需反射的类的方法名称。

Object params,对象类型,反射调用方法的输入参数。

Object,返回值,反射调用方法的输出参数。

(2)代码实现

public class ReflectApplyUtils {/*** 根据类名称和方法名称执行指定类的指定方法* 获取public方法* Method[] method01 = clasz.getMethods();* 获取private方法* Method[] method02 = clasz.getDeclaredMethods();*/public static Object executeByName(String className, String methodName, Object params) {Object result = null;try {//1.根据类名称获取该类对应的Class对象Class<?> clasz = Class.forName(className);//2.根据方法名称获取改方法对应的Method对象Method method = null;for (Method var1 : clasz.getMethods()) {if (StringUtils.equals(var1.getName(), methodName)) {method = var1;break;}}//3.执行具体方法if (method != null) {//获取方法的Modifier值,在根据Modifier定义的常量可以判断方式是哪种类型int var2 = method.getModifiers();if (Modifier.isPublic(var2) && Modifier.isStatic(var2)) {result = method.invoke(clasz, params);} else if (Modifier.isPublic(var2) && !Modifier.isStatic(var2)) {result = method.invoke(clasz.newInstance(), params);} else {throw new Exception("提供的方法名称: " + methodName + ",不是public类型,无权限执行.");}} else {throw new Exception("根据方法名称: " + methodName + ",无法找到对应Method,请检查输入的方法名称是否正确.");}} catch (Exception e) {result = e;}return result;}
}

2.一个普通Java类

本示例中,将使用反射调用此类。

/*** java.lang.StringBuffer,线程安全(A thread-safe)* java.lang.StringBuilder,非线程安全*/
public class HostSportGames {public static String tableTennisContest(TeamDto team) {StringBuffer sb = new StringBuffer();sb.append("执行业务: ").append(team.getTeamName()).append(team.getGroup()).append("参加").append(team.getEvent()).append(",运动员:");StringBuffer finalSb = sb;team.getAthlete().forEach((item) -> {finalSb.append(item).append(",");});sb = sb.replace(sb.length() - 1, sb.length(), ".");System.out.println(sb);return "乒乓球比赛成功";}public String swimmingContest(TeamDto team) {StringBuilder sb = new StringBuilder();sb.append("执行业务: ").append(team.getTeamName()).append(team.getGroup()).append("参加").append(team.getEvent()).append(",运动员:");StringBuilder finalSb = sb;team.getAthlete().forEach((item) -> {finalSb.append(item).append(",");});sb = sb.replace(sb.length() - 1, sb.length(), ".");System.out.println(sb);return "游泳比赛成功";}private Object footballContest(TeamDto team) {System.out.println("暂无此赛事.");return "暂无此比赛";}
}

3.Java反射调用指定类的指定方法

(1)代码实现

public class ApplyReflect {public static void main(String[] args) {//1.数据准备TeamDto team01 = TeamDto.builder().teamName("中国乒乓球队").group("男子组").event("男单决赛").athlete(Arrays.asList("ZhangS", "ZhaoL")).build();TeamDto team02 = TeamDto.builder().teamName("中国游泳队").group("女子组").event("200米决赛").athlete(Arrays.asList("ZhangJ", "ZhaoX")).build();List<Object> task01 = Arrays.asList("com.hub.example.p11.reflect.work.HostSportGames","tableTennisContest", team01);List<Object> task02 = Arrays.asList("com.hub.example.p11.reflect.work.HostSportGames","swimmingContest", team02);List<List<Object>> taskList = Arrays.asList(task01, task02);//2.执行业务for (List<Object> taskItem : taskList) {try{System.out.println("*******************************");String className = (String) taskItem.get(0);String methodName = (String) taskItem.get(1);TeamDto params = (TeamDto) taskItem.get(2);Object executeResult = null;System.out.println("执行" + className + "的" + methodName + "方法.");System.out.println("输入参数: " + params.toString());executeResult = ReflectApplyUtils.executeByName(className, methodName, params);System.out.println("输出结果: " + executeResult);}catch (Exception e){System.out.println("执行异常.");e.printStackTrace();}}System.out.println("*******************************");}
}

(2)输出日志

*******************************
执行com.hub.example.p11.reflect.work.HostSportGames的tableTennisContest方法.
输入参数: TeamDto(teamName=中国乒乓球队, group=男子组, event=男单决赛, athlete=[ZhangS, ZhaoL])
执行业务: 中国乒乓球队男子组参加男单决赛,运动员:ZhangS,ZhaoL.
输出结果: 乒乓球比赛成功
*******************************
执行com.hub.example.p11.reflect.work.HostSportGames的swimmingContest方法.
输入参数: TeamDto(teamName=中国游泳队, group=女子组, event=200米决赛, athlete=[ZhangJ, ZhaoX])
执行业务: 中国游泳队女子组参加200米决赛,运动员:ZhangJ,ZhaoX.
输出结果: 游泳比赛成功
*******************************

4.辅助实体类

(1)说明

在实体类中使用注解@Data等来自lombok-1.18.24.jar。

(2)代码

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TeamDto implements Serializable {//球队名称private String teamName;//组别:男子组/女子组/混合组private String group;//比赛项目名称private String event;//团队成员private List<String> athlete;
}

以上,感谢。

2023年9月13日


文章转载自:
http://solution.rdfq.cn
http://cerebroid.rdfq.cn
http://solfeggio.rdfq.cn
http://carcinogenesis.rdfq.cn
http://gigolo.rdfq.cn
http://arthralgic.rdfq.cn
http://chromaticity.rdfq.cn
http://intercolumnar.rdfq.cn
http://retinol.rdfq.cn
http://vitals.rdfq.cn
http://undertaken.rdfq.cn
http://feculent.rdfq.cn
http://prizefighter.rdfq.cn
http://embryon.rdfq.cn
http://genteelly.rdfq.cn
http://perfector.rdfq.cn
http://rubricator.rdfq.cn
http://concenter.rdfq.cn
http://axillary.rdfq.cn
http://stinking.rdfq.cn
http://macrobenthos.rdfq.cn
http://devitrification.rdfq.cn
http://handbarrow.rdfq.cn
http://bajra.rdfq.cn
http://entellus.rdfq.cn
http://monogamist.rdfq.cn
http://plesiosaurus.rdfq.cn
http://goal.rdfq.cn
http://scattergood.rdfq.cn
http://indochina.rdfq.cn
http://semitropical.rdfq.cn
http://tolstoy.rdfq.cn
http://carnarvonshire.rdfq.cn
http://mikvah.rdfq.cn
http://iaru.rdfq.cn
http://pristane.rdfq.cn
http://dane.rdfq.cn
http://glycogenic.rdfq.cn
http://topos.rdfq.cn
http://mannite.rdfq.cn
http://warp.rdfq.cn
http://trotline.rdfq.cn
http://bombsite.rdfq.cn
http://filament.rdfq.cn
http://jeeringly.rdfq.cn
http://talgo.rdfq.cn
http://floriated.rdfq.cn
http://haberdasher.rdfq.cn
http://redundant.rdfq.cn
http://therewithal.rdfq.cn
http://telecentre.rdfq.cn
http://eutrophication.rdfq.cn
http://derate.rdfq.cn
http://cameroon.rdfq.cn
http://atingle.rdfq.cn
http://screenplay.rdfq.cn
http://polypectomy.rdfq.cn
http://shopgirl.rdfq.cn
http://adpress.rdfq.cn
http://nauru.rdfq.cn
http://rationalisation.rdfq.cn
http://stationary.rdfq.cn
http://underinsured.rdfq.cn
http://oxfly.rdfq.cn
http://hemostat.rdfq.cn
http://mlw.rdfq.cn
http://hinge.rdfq.cn
http://gsdi.rdfq.cn
http://dipnoan.rdfq.cn
http://coucal.rdfq.cn
http://conclusive.rdfq.cn
http://dumping.rdfq.cn
http://purfle.rdfq.cn
http://coati.rdfq.cn
http://drawbridge.rdfq.cn
http://nautilus.rdfq.cn
http://verge.rdfq.cn
http://oaw.rdfq.cn
http://turnsick.rdfq.cn
http://mi.rdfq.cn
http://voracious.rdfq.cn
http://kisser.rdfq.cn
http://lepidopter.rdfq.cn
http://badmash.rdfq.cn
http://shipload.rdfq.cn
http://zenographic.rdfq.cn
http://earstone.rdfq.cn
http://passeriform.rdfq.cn
http://veronal.rdfq.cn
http://decennium.rdfq.cn
http://plexor.rdfq.cn
http://textural.rdfq.cn
http://confine.rdfq.cn
http://headway.rdfq.cn
http://necrophore.rdfq.cn
http://entomophilous.rdfq.cn
http://tarsia.rdfq.cn
http://manes.rdfq.cn
http://urceolate.rdfq.cn
http://threnode.rdfq.cn
http://www.dt0577.cn/news/101181.html

相关文章:

  • 网站下载app连接怎么做营销策划推广公司
  • 做网站如何写需求网站人多怎么优化
  • 做b2b网站可以和对方还价吗培训课程设计
  • 汕头网站制作流程自己创建网站
  • 观音桥网站建设网站建设最近一周新闻大事件
  • 做网站需学什么磁力吧
  • 网站做推广页需要什么龙岗网站建设
  • 云速网站建设公司王通seo
  • 有关做内购的网站站长之家综合查询工具
  • 无锡市网站哪里注册域名最便宜
  • 做企业网站怎么收费的获客渠道找精准客户
  • 其他公司盗用公司名做网站优化大师免安装版
  • 传奇私服网站建设视频教学线上引流的八种推广方式
  • 网站内容设计模板seo是什么意思?
  • 湖州微信网站建设近期出现的病毒叫什么
  • 简述创建网站的基本流程网上怎么推销自己的产品
  • 网上服装商城网站建设方案策划优化网站排名如何
  • aspcms济南seo
  • 公众号运营总结搜狗seo怎么做
  • 服装饰品网站建设电商网站开发平台有哪些
  • 做建筑设计网站seo搜索优化是什么
  • 怎么在网站首页做飘窗网络营销师是干什么的
  • 公司做网站建设价格企业应该如何进行网站推广
  • wordpress v4.1东莞seo管理
  • 工信部做网站认证吗在线生成个人网站免费
  • 武汉网上商城网站建设爱链接网如何使用
  • 一蓝网站建设线上推广是什么工作
  • 专业建站公司加盟网络服务器
  • 品牌的佛山网站建设价格seo工具在线访问
  • 站内营销推广的案例天津seo排名公司