找出哪个类创建了我

时间:2014-07-04 14:57:54

标签: java javabeans

我有一个泛型组件(一个简单的java包)。我将其转换为jar并将其交给我的客户。

我的客户可以将此jar用于他的任何应用程序。是否可以确定谁调用我的组件。在我的组件中,我能够识别谁创建了我的实例吗?

对不起,如果我说这是一个模糊的方式。给定一个对象,我可以使用(getClass())找到与它关联的className。但我不确定,如果我的要求是可能的。

2 个答案:

答案 0 :(得分:5)

  

在我的组件中,我是否能够识别谁创建了我的实例?

不一般,没有。您可以尝试在构造函数中获取堆栈跟踪,但这不一定可靠或有用。

如果你想要某种标识符,我建议你把它作为构造函数参数(或工厂方法参数)。换句话说,让呼叫者识别自己。

答案 1 :(得分:3)

您可以获取当前线程的堆栈跟踪并解析返回中的StackTraceElement,以找出哪些方法正在调用您的。{/ p>

您可以查看this question here in SO