java 反射获取对象_使用Java反射机制获取对象

本文由广州疯狂软件教育java培训分享:

构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了!

package interf;

public interface Person {

public void sayHello();

}

构造一个Person的实现类American,问好的时候讲英语

package interf;

public class American implements Person {

@Override

public void sayHello() {

System.out.println("Hello,I'm American!");

}

}

构造一个Person的实现类Chinese,问好的时候讲中文

package interf;

public class Chinese implements Person {

public void sayHello() {

System.out.println("你好,我是中国人!");

}

//重写sayHello方法

public void sayHello(String language) {

this.language=language;

System.out.println("你好,我用"+language+"问好!");

}

}

package interf;

import org.junit.*;

public class PersonTest {

public void Test() throws ClassNotFoundException, InstantiationException,

IllegalAccessException {

//第一种方式,直接new

Person p = new Chinese();

p.sayHello();

//第二种方式,采用反射机制获取对象

//Class> c = Class.forName("interf.Chinese");

Class> c = Class.forName("interf.American");

System.out.println("Chinese类全名:"+Chinese.class.getSimpleName());

System.out.println("Chinese类名:"+Chinese.class.getName());

Person p3 = (Person)c.newInstance();

p3.sayHello();

try {

Constructor> constructor = Chinese.class.getConstructor(); //获取构造方法

Chinese chineseReflect = (Chinese) constructor.newInstance(); //创建对象

Method method = Chinese.class.getMethod("sayHello",String.class); //获取方法

method.invoke(chineseReflect, "中文"); //调用方法

Field field = Chinese.class.getField("language"); //获取域

System.out.println("Reflect -> " + field.get(chineseReflect)); //获取域的值

} catch (Exception e) {

e.printStackTrace();

}

}

}

test结果如下:

你好,我是中国人,我用中文

Chinese类全名:Chinese

Chinese类名:interf.Chinese

Hello,I'm American!

你好,我用中文问好!

Reflect -> 中文

疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

websocket 导致大量apache进程_Swoole 服务端主动向websocket推送消息

在之前的博文中,我们已经学完了如果使用swoole搭建websocket长连接,也学会了swoole的多进程数据共享操作。但在一个完整的websocket长连接日常操作链中,服务端往往会主动给在线的用户单独推送消息,会群发一些消息。在Swoole-webso…

python因子分析法_python——因子分析

因子分析用Python做的一个典型例子 一、实验目的 采用合适的数据分析方法对下面的题进行解答二、实验要求 采用因子分析方法,根据48位应聘者的15项指标得分,选出6名最优秀的应聘者。 三、代码 importpandas aspd importnumpy asnp importmath asmath imp…

polycom安卓手机客户端_三款免费「游戏串流」APP,在手机/电视上玩PC游戏

以前想把电脑游戏输出到电视机上玩,得用HDMI线输出,如果电脑主机和电视机离太远,HDMI线不够长,还得抱电脑主机到电视机旁边,非常不方便。随着技术的发展,现在已经有「串流」功能,只要电视机和电…

java框架谁搭建_从零开始搭建一个开发框架(Java + Hibernate + Spring + Oracle)

框架使用的系统技术以及数据库如下:技术:Java/Hibernate/Hibernate Annotation/Spring数据库:Oracle 10g整个框架的搭建步骤大致分为以下三步:1、创建数据库相关信息2、配置Hibernate框架(导入包、编写hibernate.cfg.xml配置文件、…

python获取返回值_python如何获取函数的返回值

函数需要先定义后调用,函数体中 return 语句的结果就是返回值。如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None,类型也是 NoneType。return 语句的作用:结束函数调用、返回值 指定返回值…

java模拟器百度_Java模拟实现百度文档在线浏览

这个思路是我参考网上而来,代码是我实现。采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper浏览。ok,A、下载OpenOffice (转换资源文件)B、下载JodConverter(调用OpenOffice)C、下载Sw…

python去掉标点、特殊符号_python3去掉string中的标点符号方法

网上看到的python去掉字符串中的标点符号的方法,大多是基于python2的,不适用python3,调整后代码如下: 代码 lower_case_documents [Hello, how are you!,Win money, win from home.,Call me now.,Hello, Call hello you tomorrow…

java第一阶段知识_第一阶段 Java语言(下)

本课程是Android入门教程之Java核心技术阶段,是Java开发高级部分,安卓开发中的基础知识,讲解以下内容:(一)反射与内省讲解了什么是反射,反射在应用中的作用,相关反射的API,如Class类&#xff0c…

body click js 委托_JS 事件循环

进程 线程CPU 分配资源的最小单位是进程,同一个时间内单个 CPU 只能运行一个进程,单个 CPU 一次只能运行一个任务CPU 调度的最小单位是线程,一个进程里面包含多个线程。可以看看阮老师的这篇文章,进程与线程的一个简单解释浏览器的…

java格式_JAVA语言格式

3.1 常量 3.1.1 常量概述 – 在程序执行的过程中,其值不可以发生改变的量 3.1.2 常量分类 – 字符串常量用双引号括起来的内容(“HelloWorld”) – 整数常量 所有整数(12,-23) – 小数常量 所有小数(12.34) – 字符常量 用单引号括起来的内容(‘a’,’A’,’0’) –…

django jsonresponse_利用 Django 动态展示 Pyecharts 图表数据的几种方法

本文将介绍如何在 web 框架 Django 中使用可视化工具 Pyecharts, 看完本教程你将掌握几种动态展示可视化数据的方法!Django 模板渲染1. 新建一个 Django 项目命令行中输入以下命令django-admin startproject pyecharts_django_demo创建一个应用程序python manage.py startapp d…

python网页登录验证码不显示_进网页需要验证码?不好意思,Python从来不惧各种验证码!...

今天要来说说滑动验证码了大家应该都很熟悉点击滑块然后移动到图片缺口进行验证现在越来越多的网站使用这样的验证方式为的是增加验证码识别的难度那么,对于这种验证码应该怎么破呢接下来就是见证神奇的时刻打开 b 站的登录页面可以看到登录的时候需要进行滑块验证按…

怎么调用新建模型里文章的内容_优雅地进行Tensorflow Lite模型转换

初涉知乎江湖,知道大佬很多,请温柔以待!!!七日凌晨,谷歌连夜发布了有关于Tensorflow最新成果和技术,这应该是贾扬清离开脸书后另一个深度学习界令人惊呼的事件了吧!(旁白…

elastic java_ElasticSearch和Java环境变量

当我下载并解压缩elasticsearch并运行/bin/service.bat或/bin/elasticsearch.bat文件时,我进入了终端:JAVA_HOME environment variable must be set! Press any key to continue . . .当我这样做时,终端关闭。我已经卸载并重新安装&#xff0…

git add后取消_Git常用命令-总结

创建git用户$ git config --global user.name "Your Name"$ git config --global user.email "emailexample.com"初始化一个Git仓库,使用git init命令。添加文件到Git仓库,分两步:使用命令git add ,注意&…

java数组图片_在JAVA中定义图片数组

为实现此意图需要分三段来实现:1。 初始化: Image[] imgnew Image[n];for(int i0;iimg[i]Toolkit.getDefaultToolkit().createImage(....)//装入图片位置}2. 启动变换图片与刷新界面线程run(){//线程入口while(flag){index;index%n;(或写成if(index>n…

查看csv编码_[小O地图-数据] - 坐标转地址文字(逆地理编码)

小O地图是一款基于互联网地图进行地理数据处理、分析、图表的软件。致力为广大科研人员提供专业地图数据,用于科研及学习。小O地图提供将【经纬度坐标转换为地址】的功能,例如:将“116.359861, 39.917225” 转换为 “北京市西城区…

c# mysql 封装_C#简单通用的数据库连接封装

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Data;usingSystem.Data.SqlClient;namespaceDbLib{/// ///数据库类/// public classDatabase : IDisposable{/// ///受保护的数据库连接/// protecte…

python自动化办公源码_python自动化办公:文件篇(自动整理文件,一键完成)

import os list_all[]#初始化一个空列表 for root ,dirs,files in os.walk(rC:UsersShineionDesktop新建文件夹): for name in files: file_pathos.path.join(root,name)#包含路径的文件 file_nameos.path.split(file_path)[-1] list_all.append(file_name) print(list_all)如果…

java中no1_Java程序设计实验(NO.1).doc

Java程序设计实验(NO.1)1、实验目的:使用Java的String类操作字符串和子串。写一个程序可以对两个字符串进行测试,判断第一个字符串是否包含在第二个字符串中,例如字符串“op”包含在字符串“interoperabilityop”中。当第一个字符串包含在第二…