python的文件、名称和对象的java等价物是什么__班级__名字? 3 周 Questions & Answers 2063 在Python中,您可以通过__file__获得正在执行的文件的路径。是否有java等效物 还有一种方法可以获得与__name__类似的当前包吗 最后,什么是java内省的好资源
# 1 楼答案 您可以获取包含类文件的文件夹(不包括包): SomeClass.class.getProtectionDomain().getCodeSource().getLocation().toExternalForm();
# 2 楼答案 这个。getClass()=当前类 这getClass()。getPackage()=当前包 班getName()=类名的字符串 包裹getName()=包名称的字符串 我相信您正在寻找反射API,以获得与内省等效的功能(http://download.oracle.com/javase/tutorial/reflect/)
# 3 楼答案 您可以使用反射来导航堆栈跟踪: new Throwable().getStackTrace()[1].getFileName() new Throwable().getStackTrace()[1].getClassName() new Throwable().getStackTrace()[1].getMethodName() new Throwable().getStackTrace()[1].getLineNumber()
# 4 楼答案 @Christopher的回答解决了类名的问题 顺便说一句,标准Java类库没有提供获取对象类的文件名的直接方法 如果类是使用适当的“-g”选项设置编译的,则可以潜在地间接获取类文件名,如下所示: 在其中一个类方法中创建异常对象李> 使用Throwable.getStackTrace()获取异常的堆栈跟踪信息李> 获取当前方法的stacktrace元素,并使用StackTraceElement.getFilename()获取源文件名李> 注意,这可能会很昂贵,并且不能保证文件名会被返回,或者它将是您期望的
# 1 楼答案
您可以获取包含类文件的文件夹(不包括包):
# 2 楼答案
这个。getClass()=当前类
这getClass()。getPackage()=当前包
班getName()=类名的字符串
包裹getName()=包名称的字符串
我相信您正在寻找反射API,以获得与内省等效的功能(http://download.oracle.com/javase/tutorial/reflect/)
# 3 楼答案
您可以使用反射来导航堆栈跟踪:
# 4 楼答案
@Christopher的回答解决了类名的问题
顺便说一句,标准Java类库没有提供获取对象类的文件名的直接方法
如果类是使用适当的“-g”选项设置编译的,则可以潜在地间接获取类文件名,如下所示:
Throwable.getStackTrace()
获取异常的堆栈跟踪信息李>StackTraceElement.getFilename()
获取源文件名李>注意,这可能会很昂贵,并且不能保证文件名会被返回,或者它将是您期望的