需要在Java中传递调用者方法的详细信息。我不想使用StackTrace找出它们。
是否有其他替代方法可以获取它们?
我知道Aspects会有所帮助,但有人担心它会降低性能。
任何建议都会有所帮助。
答案 0 :(得分:1)
我什么都不知道。
最后,您需要某种仪器。换句话说:您想告诉jvm跟踪调用堆栈,更重要的是,以编程方式使该信息对您可用。
即使您只希望特定方法发生这种情况,jvm仍必须跟踪 all 方法调用,因为它不知道是否在其中调用了要跟踪的方法之一。结束。 Java被解释并编译为本地机器代码的事实也增加了复杂性。
因此,如上所述:在不影响性能的情况下,无法轻松跟踪方法调用。我知道可以将性能影响保持在合理水平的工具(例如XRebel)用于以后的评估,而不是用于程序消耗。
最后:您宁愿调查您的要求。当您真的需要Java信息时,Java根本不是一种好语言。这并不是要保留调用堆栈。因此:真正的解决方案是选择一个更适合您的平台,或者(建议)退一步并设计一个没有此要求的解决方案。