首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >知道是什么类实例化了一个类

知道是什么类实例化了一个类
EN

Stack Overflow用户
提问于 2019-05-05 13:23:01
回答 1查看 64关注 0票数 1

基本上,我正在创建一个API。我有多个端点,作为控制器实现。如果一个端点被调用,它会实例化一个parserclass,添加一些选项(比如允许的参数等等)。

但是现在:如果解析器失败,我希望它呈现一个很好的错误,包含一个指向实际失败的端点的文档的链接。

我使用b4j,它在Java之上工作,所以任何相关的Java代码都应该很容易转换。在b4j中,任何端点都类似于类。

我有一个“getPOIByCity”端点。

如果用户调用此方法,则需要一个城市参数。如果他/她省略了该参数,我希望用户得到一个包含以下内容的错误:

缺少一个必需的参数:城市 请参阅文档:http://www.link.to/doc/getPOIByCity

我的第一个想法是进行某种类型的堆栈跟踪,以知道哪个类实例化了解析类,但我不敢相信这就是实现这个目标的方法。

C#具有稍微优雅的“呼叫者信息”属性。

对如何做到这一点有什么见解吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-05 13:57:07

正如另一个-dave已经提到的,将异常委托给调用类(控制器)并从那里显示错误将更有意义。

但是为了给你的问题一个答案,你可以用

代码语言:javascript
复制
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
String parentClass = stackTraceElements[2].getClassName();
Class cl = Class.forName(parentClass);

去实现你想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55992391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档