在Java中,调用类的方法有两种方式:对于静态方法可以直接使用类名调用,对于非静态方法必须使用类的对象调用。反射机制提供了比较另类的调用方式,可以根据需要指定要调用的方法,而不必在编程时确定。调用的方法不仅限于public的,还可以是private的。编写程序,使用反射机制调用Math类的静态方法sin()和非静态方法equals()。

思路如下:使用Math.class.getDeclaredMethod("sin", Double.TYPE);访问指定的方法,其中”sin”表示要访问的方法的名称为sin,Double.TYPE表示入口参数的类型为double。

代码如下:

import java.lang.reflect.Method;

public class DongTai {

public static void main(String[] args) {

try {

System.out.println("调用Math类的静态方法sin()");

Method sin = Math.class.getDeclaredMethod("sin", Double.TYPE);

Double sin1 = (Double) sin.invoke(null, new Integer(1));

System.out.println("1的正弦值是:" + sin1);

System.out.println("调用String类的非静态方法equals()");

Method equals = String.class.getDeclaredMethod("equals", Object.class);

Boolean mrsoft = (Boolean) equals.invoke(new String("明日科技"), "明日科技");

System.out.println("字符串是否是明日科技:" + mrsoft);

} catch (Exception e) {

e.printStackTrace();

}

}

}

效果如图:

动态调用类 java_Java动态调用类中方法相关推荐

  1. 反射工具类 java_Java反射工具类

    importjava.lang.reflect.Field;importjava.lang.reflect.Method;/*** Java反射工具类 * 提供以下几个功能: * 1. 取最简类名 * ...

  2. 天干地支 工具类java_java日期工具类DateUtil-续二

    该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...

  3. Python动态类和动态方法的创建和调用

    借助于python的动态语言特性,很容易对对象进行添加方法或者属性,这也是python的灵活之一. 动态生成类的属性及其方法 在某些情况可能要根据不同的参数来动态生成不同的实例方法.静态方法.类方法. ...

  4. C++中.lib静态库、.dll动态库的生成及调用2

    关于动.静态库的介绍及静态库的生成及调用参见:C++中.lib静态库..dll动态库的生成及调用<1>,本文主要介绍基于VS2015平台的动态库dll的生成及调用方法. 一.动态库的生成 ...

  5. C++中.lib静态库、.dll动态库的生成及调用1

    一.前言 1.动态链接库(dll)与静态链接库(lib): 动态链接库(dll)是一个可以被其他应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源.在链接步骤中,连接器将从库文件取得所需的代 ...

  6. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  7. C++Primer:字面值常量类调用函数错误(p268书中示例报错)

    1. 背景   在阅读到C++Primer第268页时发现其示例编写好后程序报错. #include <iostream> using namespace std; class Debug ...

  8. 2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出“方法 method() 被

    2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出"方法 metho ...

  9. tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例

    本文实例讲述了thinkPHP5.1框架中Request类四种调用方式.分享给大家供大家参考,具体如下: 1. 传统调用 访问方式:http://127.0.0.1/demo/demo3/test?n ...

最新文章

  1. c++强大还是python强大-如果C++很强大,为什么它不及Java、Python流行?
  2. readdirectorychangesw 链接错误 undeclared identifier 解决方法
  3. CSS之容器按比例缩放
  4. 人生致命的八个经典问题
  5. (24)FPGA开发必备(FPGA不积跬步101)
  6. Flutter进阶—解析动画
  7. 如何使用TreeView控件
  8. Atitit 分布式文件系统总结 fastdfs nfs smb webdav ftp 目录 1.1. webdav 是个好的方案。。。Server client都有 1 1.2. ftp也方便ja
  9. Office办公软件三十而立,从一花到多花(上)
  10. 中国步进电机市场现状研究分析与发展前景预测报告(2022)
  11. 前端开发中spa的优缺点_使用单Spa开发和部署微前端
  12. 用Matplotlib绘制渐变的彩色曲线
  13. 编写一个程序,提示用户输入以兆位每秒(Mb/s)为单位的下载速度和以兆字节(MB)为单位的文件大小。程序中应计算文件的下载时间。
  14. 到底多大并发才算高并发?一文带你全面认识高并发!
  15. Part 4R 不定积分和定积分
  16. 我的秋招经验分享(内附校招交流群)
  17. MEMOS 技术支持
  18. 数控车椭圆编程实例带图_数控车床椭圆怎么编程
  19. Java web:基于jieba分词器(或ansj分词器)的文章关键词字符云(词云图)
  20. Numpy之arange

热门文章

  1. html搜索框美化代码单词,CSS 漂亮搜索框美化代码
  2. html5 sidetoggle,javascript-使用React.js实现SlideToggle功能
  3. declaration of 'int ret' shadows a parameter
  4. iOS 多线程:『GCD』详尽总结
  5. 区块链来了|网贷业想尝鲜,全民记账让卷款跑路成为不可能!
  6. JavaScript模仿块级作用域
  7. visio篇章--1
  8. ​iIIegalArgumentException:the bind value at index 1 isnull
  9. 浅谈:ArrayList,ListT,ListObject
  10. 网段:192.168.6.0的机器A要访问网段:10.1.56.0的机器B