一个小例子体会Java反射的动态性

背景:需要在程序运行时或者说某段代码运行后才能知道要创建哪个类的对象。

import java.util.Random;/*** @Author: Yeman* @Date: 2021-10-02-22:18* @Description:*/
public class ReflectionTest {public static Object getInstance(String path) throws Exception {Class<?> clazz = Class.forName(path); //根据全类名获取类Object o = clazz.newInstance(); //创建指定运行时类的对象return o;}public static void main(String[] args) {String path = null;for (int i = 0; i < 10; i++) {int c = new Random().nextInt(3); //随机产生0,1,2//根据产生的情况指定所要创建的类switch (c){case 0 :path = "java.util.Date";break;case 1 :path = "Person";break;case 2 :path = "java.lang.Object";break;}try {Object instance = getInstance(path);System.out.println(instance);} catch (Exception e) {e.printStackTrace();}}}
}

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

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

相关文章

Linux脚本让我选择文件,linux – 用于选择文件和打印文件大小的Awk脚本

我们在这看……select all regular files (not directories or links)到目前为止,你还没有解决这个问题,但如果你在ls -l …的输出中输入,这很容易,请选择/^-/因为目录以d开头,符号链接以l开头,依此类推.只有普通旧文件以 – 开头.现在print out the number of files followed好…

12000+字Java反射,一起全面了解Java反射机制,为学习框架铺路

文章目录Java反射机制理解Class类获取Class类实例类的加载过程类加载器ClassLoader创建运行时类的对象获取运行时类的结构调用运行时类的指定结构动态代理Java反射机制 Reflection是被视为动态语言的关键&#xff0c;反射机制允许程序在执行期借助于Reflection API取得任何类的…

坚实原则:Liskov替代原则

以前&#xff0c;我们深入研究了坚实的原则&#xff0c;包括单一责任和开放/封闭原则。 Liskov替代原则&#xff08;LSP&#xff09;是子类型关系的一种特殊定义&#xff0c;称为&#xff08;强&#xff09;行为子类型&#xff0c; 假设对象S是对象T的子类型&#xff0c;则可…

linux 中 id指令,Linux id 命令

要登入一台计算机&#xff0c;我们需要一个用户名。用户名是一个可以被计算机识别的身份。基于此&#xff0c;计算机会对使用这个用户名的登陆的人应用一系列的规则。在Linux系统下&#xff0c;我们可以使用 id 命令。什么是 id 命令id 命令可以显示真实有效的用户 ID(UID) 和组…

提高Java表达能力!不落伍一起掌握Java8中Lambda表达式、函数式接口及方法构造器数组引用

文章目录函数式接口概述函数式接口示例内置函数式接口Lambda简述Lambda语法方法引用构造器引用数组引用函数式接口概述 只包含一个抽象方法的接口&#xff0c;称为函数式接口。 可以通过 Lambda 表达式来创建该接口的对象。 可以在一个接口上使用 FunctionalInterface 注解&…

linux启动weblogic指令,linux下如何启动和关闭weblogic .

在你定义的域中可以找到如下命令&#xff1a;/[youHome]/domains/[yourDomain]/startWebLogic.sh/[youHome]/domains/[yourDomain]/stopWebLogic.sh用telnet远程控制服务器&#xff0c; 远程启动WEBLOGIC服务&#xff0c;启动后关闭telnet&#xff0c;WebLogic服务也跟着停止&a…

一文一起,学习功能强大的Java8新StreamAPI,让集合的操作得心应手

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 文章目录Stream 概述Stream 实例化Stream 中间操作Stream 终止…

java erlang_Java开发人员的Erlang

java erlang您可能没有注意到&#xff0c;但是距离我上次发布博客已经过去了几个星期。 这是由于我的Soleus骨折了&#xff0c;而且我的腿是石膏模型。 不能动弹&#xff0c;我认为调查完全不同的东西是个好主意–要么看那一天&#xff0c;要么看白天的电视&#xff0c;尽管Koj…

linux 取消混杂模式,Linux下网卡混杂模式设置和取消

1、Linux下网卡常用的几种模式说明&#xff1a;广播方式&#xff1a;该模式下的网卡能够接收网络中的广播信息。组播方式&#xff1a;设置在该模式下的网卡能够接收组播数据。直接方式&#xff1a;在这种模式下&#xff0c;只有目的网卡才能接收该数据。混杂模式&#xff1a;在…

新容器!不再担心空指针, Java8 Optional类

Optional<T>类(java.util.Optional)是一个容器类&#xff0c;它可以保存类型T的值&#xff0c;代表这个值存在。或者仅仅保存null&#xff0c;表示这个值不存在。原来用 null 表示一个值不存在&#xff0c;现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常…

在Docker容器中的Tomcat上运行ADF Essentials

我经常开发示例应用程序。 我尝试了一些想法&#xff0c;运用了一些技巧&#xff0c;并通过示例应用程序与同事和博客读者分享了我的调查结果。 当某人想要了解该技术的实现方式时&#xff0c;他们只需查看源代码&#xff0c;就足以理解这个想法。 但是&#xff0c;如果他们想了…

非cpu0启动linux,SD卡无法启动Linux的问题及解决

最近在Zynq板上启动linaro桌面系统时&#xff0c;发现一个奇怪的问题&#xff0c;系统在启动到最后&#xff0c;已经打印了如下信息&#xff1a;[drm] Initialized axi_hdmi_drm 1.0.0 20120930 on minor 0&#xff0c;按理说后面就该是登录系统并显示shell提示符了&#xff0c…

新!详细!win10下MySQL数据库干净卸载安装与配置

微信公众号&#xff1a;创享日记 发送&#xff1a;sqlyog 获取SQLyog客户端安装包 文章目录官方下载卸载清除安装变量配置测试SQLyog客户端下载官方下载 链接直达&#xff1a;点击官方下载 1、选择 2、下载&#xff1a;点击download进入下载页面&#xff0c;选择“No thanks,…

linux系统基本使用教程,Linux系统的基本使用入门

终端&#xff1a;用户与主机交互&#xff0c;必然会使用到的设备&#xff0c;在Linux中也使用文件进行标识物理终端:直接接入到本机的显示器和键盘设备&#xff1a;又叫控制台&#xff1a;console物理终端设备文件&#xff1a;/dev/console虚拟终端&#xff1a;附加在物理终端之…

最基础,MySQL基础查询SELECT

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 1、查询表中字段 USE 要操作的数据库名; SELECT 查询的字段 …

linux编码 form表单,Linux以form表单形式上传文件讲解

先cd到要上传文件的目录下&#xff1a;rootiZ2zee1przeygbuu4rkwvxZ:/usr/local/test# ls1.png DSC_0192.JPG test.apk使用curl -F 或 curl --formcurl --form "fileDSC_0192.JPG" http://ip:port/projectName/busnews/upload*注意&#xff1a;不一定写file&#xff…

有条件了!筛选,MySQL条件查询SELECT-WHERE

1、基本语法 SELECT查询列表 FROM表名 WHERE筛选表达式;2、按条件表达式筛选 条件运算符&#xff1a;>,<,,!,<>,>,< 条件运算符不能判断null。 #在employees表中筛选工资大于12000的员工的所有信息 SELECT* FROMemployees WHEREsalary>12000;3、按逻辑…

rest和rest ful_为什么REST如此重要

rest和rest ful这篇文章致力于REST&#xff0c;一种塑造Web服务的架构风格&#xff0c;以及IT历史上最容易被误解的概念。 这篇文章针对的是正在设计Web服务api的人&#xff0c;他们没有完全了解REST的实际含义。 我想给你个主意。 这篇文章也发给了那些想知道REST意味着什么的…

流利的接口不利于维护

流利的接口 &#xff08;最初由Martin Fowler 创造&#xff09;是一种非常方便的与OOP中的对象进行通信的方式。 它使他们的外墙更易于使用和理解。 但是&#xff0c;它破坏了它们的内部设计&#xff0c;使它们更难以维护。 Marco Pivetta在他的博客文章Fluent Interfaces is E…

c语言初始化字符串 函数 manment,[转载]3.09进程(C语言班最后一天的课程)

1&#xff0c;进程&#xff1a;是容器&#xff0c;是内存上的概念。线程是CPU的概念。2&#xff0c;fork的作用是根据一个现有的进程复制出一个新进程&#xff0c;原来的进程称为父进程(Parents Process)&#xff0c;新进程称为子进程(Child Process)。系统中同时运行着许多进程…