1、获取类、类名
在类里面,this.getClass()获取当前类,类外,实例.getClass(),或者知道类名:类名.class;不知道类名就先获取类名:this.getClass().getName();Test.class.getName()
2、获取当前文件–》当前文件路径,当前文件所属类路径的所有文件–》类路径
思想是先获取类—->类.getResource(“”);获取当前文件(类要是当前类,其他类就是其他的类文件)
—–>类.getResource(“/”):获取当前类文件所属类路径的所有文件(有点难懂,就是类路径下的所有文件,而不只是一个路径)
获取路径,思想就是先获取文件—->然后文件.getPath(),就是路径(一个String)
this.getClass().getResource(“”).getPath();
有时候,这些获取路径的通常在静态块中,获取类路径不必通过当前实例,可以通过一些基本的继承的父类,比如说
Object(所有类都是继承于这个类),就可以通过Object.class.getResource(“/”).getPath()获取到了
程序如下:
public class Test {
Class claz = this.getClass();
String clazz = this.getClass().getName();
public static void main(String[] args){
//获取当前类文件
System.out.println(Test.class.getResource(""));
//获取当前类文件的路径
System.out.println(Test.class.getResource("").getPath());
//获取类路径下的所有文件
System.out.println(Test.class.getResource("/"));
//获取类路径
System.out.println(Test.class.getResource("/").getPath());
//平时遇到不知道类名,也在static块下不能用this获取类的情况下,我们可以用Object这个类
System.out.println(Object.class.getResource("/").getPath());
//如果不知道类名,通过实例.getClass()获取
Test t = new Test();
System.out.println(t.getClass());
//等同于上
System.out.println(t.claz);
System.out.println(t.clazz);
System.out.println(Test.class.getName());
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25