java基础

Li Guangqiao - 26/06/2024

java code language

Java

反射基础

 // 动态加载类
  Class<?> clazz = Class.forName("java.util.ArrayList");

Class 是 Java 反射 API 中的一个核心类,用于表示所有类和接口在运行时的类型信息。

Class<?>

解释 Class<?>

  1. Class:这是 java.lang.reflect 包中的一个类,表示在运行时的类和接口。每个类都被 Class 类的一个实例所表示,无论它是一个普通类、接口、枚举还是注解。
  2. 泛型 <?>(通配符):在 Java 中,? 表示通配符,用于泛型编程。Class<?> 表示“未知的 Class 类型”,它是泛型语法的一部分。使用 ? 作为类型参数,你可以引用任何类型的 Class 对象。这种方式比使用 Class 类型更加安全,因为它防止了向 Class 对象中放入错误类型的实例。

为什么使用 Class<?>

总结来说,Class<?> 是 Java 反射和泛型用法的一个例子,它提供了一种类型安全和灵活的方式来处理在编译时类型未知的类对象

Class.java的getMethod方法

getMethod方法返回一个反映由此Class对象表示的类或接口中指定的公共成员方法的Method对象。name参数是一个字符串,指定所需方法的简单名称。parameterTypes参数是一个Class对象数组,这些对象按声明的顺序标识方法的形式参数类型。如果parameterTypesnull,则被视为一个空数组。

如果这个Class对象表示一个数组类型,那么此方法会找到数组类型从Object类继承的任何公共方法,除了clone()方法外。

如果这个Class对象代表一个接口,那么这个方法不会找到Object中任何隐式声明的方法。因此,如果接口或其任何超接口中没有显式声明任何方法,则此方法不会找到任何方法。

此方法不会找到名称为"<init>""<clinit>"的任何方法。

Li Guangqiao
Li Guangqiao

一个正在转rust的ExtJs前端工程师。迷信rust的整体发展,十分相信rust在各个领域都能发光发热,至少目前rust在很多领域上验证了其安全性、易维护性。但说实话对于我这种菜鸡也是真的难上手哈哈哈~~。 思路总结:

  • 万物诞生都会有一个需求来源,每一个改变都是为了解决某个问题,最后应该考虑如何去做
  • 学会掌握一些宏观的知识和理论:系统论、还原论
  • 工程化思想,如何描述整体,从整体架构到模块关联等 故学习东西应该像看地图一样,先看整体了解整体的结构,然后再聚焦每一个模块,对于模块的学习,思考三个问题,“是什么?”、“为什么?”、“怎么做?”;那么设计一个东西时也应该去考虑整体性和关联性。

有关于未来的发展,以下是鄙人的粗浅的观点:

  • 编程语言未来应该是每个人必备的工具
  • 未来的交互方式应该会以语言交互为主流
  • 下一个去中心化的技术方案出来之前,区块链依然是web3建立价值体系的基础技术方案,如何将现实价值和虚拟价值联通是进入数字世界的一个大难题。
  • 未来注定是AI的世界。AI的进化会伴随绝大部分人的退化,届时除了尖端人才,人们学习的重心会放在何处?