Java反射在Main方法的中的而应用

简介:    我们一直在学反射,反射到底是用来干什么的? 我一直也很迷糊.直到今天,终于搞清楚了。   打个比方,在JavaWeb中,如果我们想要通过用户提交的数据来决定具体调用哪个类来执行相应的功能。
 

 我们一直在学反射,反射到底是用来干什么的? 我一直也很迷糊.直到今天,终于搞清楚了。 

 打个比方,在JavaWeb中,如果我们想要通过用户提交的数据来决定具体调用哪个类来执行相应的功能。 

没有接触到发射之前我们可能会觉得 我们可以进行多个 switch 或者 if ,这样不是不可以,但是 这样程序的编制就会变得很麻烦,代码很臃肿。

反射就很好的解决了这个问题 实时的动态的加载一个类 并执行功能。  

下面就结合一个   通过执行带参数的 main方法 反射调用另一个main方法 

pavkage me.test ;//打包

import  java.lang.reflect.* ;//导入反射包 

public class   ReflectTest  //一个源文件只有一个publuc类

{  

  public staitc void main(String []args)

{    

    Method  m1=Class.forName(args[0]).getMethod("main",String[].class)  ;//获得mian方法对应的Method类  

    m1.invoke(m1,new Object[]{new String[]{"me.test.Test"}}) ; //  这两种方法执相同的功能

 m1.invoke(m1,(Object)new String[]{"1111","2222","3333"}) ;  //这两种方法执相同的功能但是 

// 我们要注意 mian方法的参数 接收的时候要进行接  解包,如果第一种外面不加 Object类型的话 那么就会报错  ,解包完成之后 剩下的就是我们的参数了 

//第二个是吧 数组 转换成了 Object对象 告诉 编译器 不需要进行解包了  ,因为数组类型也是从 Object而来的 


}

 
}

 

class  Test

{

public static  void main(String[] args)

{

for(String ar:args)

{

System.out.println(ar) ;
}
}

 

 


}

 

目录
相关文章
|
2月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
2月前
|
人工智能 安全 Java
Java和Python在企业中的应用情况
Java和Python在企业中的应用情况
76 7
|
16天前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
19天前
|
Java 数据库连接 Spring
反射-----浅解析(Java)
在java中,我们可以通过反射机制,知道任何一个类的成员变量(成员属性)和成员方法,也可以堆任何一个对象,调用这个对象的任何属性和方法,更进一步我们还可以修改部分信息和。
|
21天前
|
安全 算法 Java
Java CAS原理和应用场景大揭秘:你掌握了吗?
CAS(Compare and Swap)是一种乐观锁机制,通过硬件指令实现原子操作,确保多线程环境下对共享变量的安全访问。它避免了传统互斥锁的性能开销和线程阻塞问题。CAS操作包含三个步骤:获取期望值、比较当前值与期望值是否相等、若相等则更新为新值。CAS广泛应用于高并发场景,如数据库事务、分布式锁、无锁数据结构等,但需注意ABA问题。Java中常用`java.util.concurrent.atomic`包下的类支持CAS操作。
56 2
|
2月前
|
缓存 Java 开发者
Java多线程并发编程:同步机制与实践应用
本文深入探讨Java多线程中的同步机制,分析了多线程并发带来的数据不一致等问题,详细介绍了`synchronized`关键字、`ReentrantLock`显式锁及`ReentrantReadWriteLock`读写锁的应用,结合代码示例展示了如何有效解决竞态条件,提升程序性能与稳定性。
204 6
|
1月前
|
监控 Java 数据库连接
Java线程管理:守护线程与用户线程的区分与应用
在Java多线程编程中,线程可以分为守护线程(Daemon Thread)和用户线程(User Thread)。这两种线程在行为和用途上有着明显的区别,了解它们的差异对于编写高效、稳定的并发程序至关重要。
44 2
|
2月前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
57 4
|
2月前
|
Java
深入探讨Java中的中断机制:INTERRUPTED和ISINTERRUPTED方法详解
在Java多线程编程中,中断机制是协调线程行为的重要手段。了解和正确使用中断机制对于编写高效、可靠的并发程序至关重要。本文将深入探讨Java中的`Thread.interrupted()`和`Thread.isInterrupted()`方法的区别及其应用场景。
76 4
|
2月前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
30 1