问题标签 [introspection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
25 回答
398562 浏览

python - 如何查看 Python 对象内部?

我开始使用 Python 在各种项目中编写代码(包括 Django Web 开发和 Panda3D 游戏开发)。

为了帮助我理解发生了什么,我想基本上“查看” Python 对象内部,看看它们是如何运行的——比如它们的方法和属性。

假设我有一个 Python 对象,我需要打印出它的内容吗?这甚至可能吗?

0 投票
2 回答
1889 浏览

introspection - 用于 PowerBuilder 应用程序的 Spy++

我正在尝试编写一个工具来检查基于 PowerBuilder 的应用程序的状态。我在想的是像 Spy++(或者,更好的是,'Snoop',因为它存在于 .NET 应用程序)之类的东西,它可以让我检查一些基于 PowerBuilder 的 GUI 的对象树(和对象的属性)。

我已经对普通(基于 MFC)的应用程序和 .NET 应用程序做了同样的事情,但不幸的是我自己从未在 PowerBuilder 中开发过应用程序,所以我现在通常在考虑两个问题:

  1. 是否有一些 API(最好是 Java 或 C/C++)可以让人们遍历 PowerBuilder 应用程序的可视对象树?我在 PowerBuilder Native Interface system 上阅读了一些内容,但似乎这意味着用 C/C++ 编写 PowerBuilder 扩展,然后可以从 PowerBuilder 脚本语言调用,对吧?

  2. 如果有一些可用的 API - 也许 PowerBuilder 应用程序甚至会公开某种支持 IPC 的 API,它可以让我检查 PowerBuilder 对象层次结构的状态,而无需处于 PowerBuilder 应用程序的进程中?也许有可用的自动化接口,或者基于 COM 的东西——或者其他东西?

现在,我的印象是可能需要在 PowerBuilder 应用程序的进程中注入一个 DLL,然后获得对正在运行的 PowerBuilder VM 的访问权限,以便我可以查询它以获取对象树。某种 IPC 机制将让我将这些信息传输到 PowerBuilder 应用程序的进程之外。

有没有人有这方面的经验,或者可以阐明是否有人已经尝试过这样做?

最好的祝福,

  • 弗里里希
0 投票
6 回答
4878 浏览

perl - 如何循环遍历 Perl 中类的所有方法?

在 Perl 中如何循环遍历一个类的所有方法?有没有关于 Perl 内省或反射的好的在线参考资料?

0 投票
3 回答
52489 浏览

java - 如何使用 BeanUtils 内省获取 Java 对象的所有属性列表?

我有一个获取 POJO 作为参数的方法。现在我想以编程方式获取 POJO 的所有属性(因为我的代码在运行时可能不知道其中的所有属性是什么)并且还需要获取属性的值。最后,我将形成 POJO 的字符串表示形式。

我可以使用ToStringBuilder,但我想以特定于我的要求的特定格式构建我的输出字符串。

是否可以在 Beanutils 中这样做!?如果是,任何指向方法名称的指针?如果不是,我应该编写自己的反射代码吗?

0 投票
14 回答
89600 浏览

java - 使用 Java 反射检索继承的属性名称/值

我有一个从“ParentObj”扩展而来的 Java 对象“ChildObj”。现在,是否可以使用 Java 反射机制检索 ChildObj 的所有属性名称和值,包括继承的属性?

Class.getFields给了我公共属性的数组,Class.getDeclaredFields给了我所有字段的数组,但它们都不包括继承的字段列表。

有什么方法可以检索继承的属性吗?

0 投票
3 回答
304 浏览

objective-c - 确定哪个 NSView 实例启动了 mouseDown:

我有一个带有 25 块 myGameTile 的游戏板,这是 NSView 的一个子类。在 mouseDown 中:我想确定我单击了哪个图块并将 ivar 设置为代表值。

例如,如果我单击图块 12,请将 clickedTile 设置为“12”或唯一代表该特定实例的某个值。

我打开了从整数值 12 一直到某种内省/反思的任何东西,尽管内置功能和优雅比 hack、运行时包装器和修改更可取。不过,我知道我可能别无选择,只能依赖这些解决方案,所以也请回答这些问题。我想知道我所有的选择。谢谢!

0 投票
2 回答
10838 浏览

oracle - PL/SQL:检索包中的过程和函数的名称

是否可以检索驻留在特定包中的所有过程和函数的名称?我知道从视图中可以收集到它们(闻起来有点骇人听闻ALL_SOURCE,但我更喜欢更规范的策略。

0 投票
1 回答
660 浏览

fxcop - 当我尝试使用 FxCop 内省引擎时,如何解决这个异常?

当我尝试使用 FxCop 内省引擎时出现异常:

这个异常是什么意思,我该如何解决?

0 投票
3 回答
8348 浏览

java - 在 Java 静态方法声明中使用当前类

我的 Java 生锈了,所以请多多包涵。在 CI 中可以做到:

在 Java 中,我可以从词法上获取当前定义的类型的名称或类吗?例如,如果我有:

在 getLogger() 参数中重复“myClass”似乎是错误的。我想要“getLogger(__CLASS__)”或“getLogger(this.class)”什么的。(我知道这两个都很愚蠢,但它们应该指向我正在寻找的东西。)Java 编译器在处理源代码时真的不知道它在中间的类吗?

0 投票
3 回答
67334 浏览

python - 获取Python中调用函数模块的__name__

假设myapp/foo.py包含:

myapp/bar.py包含:

在这种情况下,我想caller_name设置为__name__调用函数模块的属性(即“myapp.foo”)。如何才能做到这一点?