如何使用调用方法的类的名称创建.txt文件?

时间:2015-11-10 13:57:29

标签: java file class

我是编程新手,所以让我们看看我是否可以解释得这么好。

我正在制作一个Java包。在其中一个类中,有一个创建文件的方法。我把它设置为“file.txt”的那个文件的名称,但我想改变它。

假设有一个用户正在处理一个新项目并且他导入了库包(我正在处理的那个)。我希望创建的文件采用用户正在处理的类的名称。例如,如果用户在名为Main的类中调用它,我希望该文件名为main.txt或Main.txt。

如果这个不够清楚请告诉我,我会尽力解释一下。

由于

编辑:我已经尝试了getClass()。getSimpleName()但它的工作方式与我想要的完全不同。该方法位于名为library的库中,该类名为Main.class,但正由导入库library的用户使用,并且正在处理名为{{1}的类我希望文本文件被调用SuperMario.class而不是SuperMario.txt应用于我的方法,文件将被称为getClass().getSimpleName(),因为这是该方法所在类的名称。不幸的是我不能让方法将名称作为参数传递。谁能想到解决这个问题的方法呢?

1 个答案:

答案 0 :(得分:3)

在您的库中,使用stacktrace:

public class Called {

public static void calledMethod() {
        System.out.println(Thread.currentThread().getStackTrace()[2].getClassName());
        // stackTrace 0 is get stack trace.
        // stack trace 1 is calledMethod
        // stack trace 2 is the calling method aka main in
    }
}

结果将是

eu.plop.test.TestClass

你必须在stacktrace之后搜索,看看你是否想要文件名,类名,方法名......然后一些字符串可以在未使用的情况下删除包。