「java反射路径」java 反射方法
本篇文章给大家谈谈java反射路径,以及java 反射方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java 怎么通过反射获取并实现这个类里面的接口,并且实现接口中的方法
- 2、Java 通过绝对路径反射,创建类的实例?
- 3、java 如何使用反射 加载指定路径下的类文件(.class)
- 4、Java反射中 怎么打印出一个类的完整路径 比如说(Student)这个类, 求解
Java 怎么通过反射获取并实现这个类里面的接口,并且实现接口中的方法
获取当前线程的ClassLoader,通过ClassLoader获取当前工作目录,对目录下的文件进行遍历扫描。过滤出以.class为后缀的类文件,并加载类到list中,对list中所有类进行校验,判断是否为指定接口的实现类,并排除自身。返回所有符合条件的类。
这个方没有考虑不同的文件格式。当程序打成jar包,发布运行时,上述的这种遍历file的操作就失效了。只能扫描到当前方法的同级目录及其子目录。无法覆盖整个模块,遍历文件的逻辑太啰嗦,可以简化。
扩展资料:
Java使用注意事项:
1、如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件。
2、如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
3、PATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。
4、需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
Java 通过绝对路径反射,创建类的实例?
Class.forName参数需要传的是一个类名,而不是一个文件名。
这个类需要是在classpath范围中的
java 如何使用反射 加载指定路径下的类文件(.class)
简单写了下,不知道是不是你要的。
import java.lang.reflect.Method;
import com.sun.org.apache.bcel.internal.util.ClassLoader;
public static void main(String[] args) throws Exception {
ClassLoader classLoader = new ClassLoader( new String[] { "D:\\Cheiron\\Test\\bin" });//类根路径
Class? cl = classLoader.loadClass("org.apache.commons.lang.StringUtils");//类名
Method method = cl.getMethod("split", String.class, String.class);//类的方法
System.out.println(method.getName());//打印方法名
String[] arrS = (String[]) method.invoke(null, "a,a", ",");//调用方法
for (String string : arrS) {//打印返回值
System.out.println(string);
}
}
Java反射中 怎么打印出一个类的完整路径 比如说(Student)这个类, 求解
这个,我们老师说学到后面会大量用到,j2ee中的其他组建,JAVA的反射是指,可以通过一个类名来探察这个类里面的信息,比如说类的属性名,属性名的修饰符,方法名,方法返回值,方法修饰符等等,反正除了方法体得不到,其他都可以用反射得到;反射还可以生成类的实例,通过这个实例定义属性,调用方法,特别是能调用私有的属性和私有的方法,是不是很强大啊
import java.lang.reflect.*;
public class ReflectionTest {
public static void main(String[] args) {
try {
Class c=Class.forName("java.util.HashSet");
Object o=c.newInstance();
Method[] methods=c.getDeclaredMethods();
for(Method method:methods){
System.out.println(method);
}
Method m1=c.getMethod("add", Object.class);
m1.invoke(o, "cyq");
m1.invoke(o, "hello");
m1.invoke(o, "java");
System.out.println(o);
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是一个简单的反射例子,就是得到HashSet中的所有申明的方法,生成一个HashSet的实例,然后往里面添加对象
!
java反射路径的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 反射方法、java反射路径的信息别忘了在本站进行查找喔。