问题标签 [invocation]
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.
debugging - vs2008 和 vs2010 之间的调试器行为变化
我正在努力解决 Visual Studio 2008 和 2010 调试器之间的行为差异。
在 2008 年,在附加调试器的情况下,下面的代码不会停止在对象 a 中的 I 的属性设置器处显示未处理的异常。(菜单选项:调试/异常,用户未处理打开,选项“抛出”关闭)
try catch 块将捕获 targetInvocationException,我可以安全地忽略它(在特殊情况下,请注意)。
但是,在 vs 2010 中,附加了调试器的这段代码将在尝试设置值 I 失败时中断。(这对我的同事来说很烦人,因为我不希望他们的调试运行因此而突然停止)。
据我所知,我可以选择在类上应用属性“System.Diagnostics.DebuggerNonUserCode”,或者禁用调试选项“仅启用我的代码”。
第一个选项实际上并不是一个可行的选项,因为在现实世界中,生成了 A 类(还有数百个其他选项)而且我无法监督禁用选项“仅启用我的代码”将对我们的多个选项产生影响,大解决方案。
有人可以向我解释为什么禁用仅我的代码选项会有所不同吗?
提前致谢!;)
ps我也试过在Debug/Exceptions/Common language runtime exceptions system.Reflections中禁用所有未处理的反射选项,但这似乎没有效果......
-- 示例代码 --
java - 在抽象数据类型中,方法调用的 Java 排序?
当您有一个实现了方法行为的抽象类以及没有实现任何行为时,方法调用的顺序是什么?
假设我的抽象类称为 Abs,它有两个子类,Sub1 和 Sub2
在案例 1 中,Abs 包含方法 Meth1 的实现代码
在一个完全不同的类中,我有方法:
我通过 Sub1 或 Sub2 代替 Abs
在案例 2 中,Abs 不包含实现代码(但 Sub1 和 Sub2 包含)
我叫同样的:
在传入 Sub1 或 Sub2 之后。
在每种情况下,方法调用的顺序是什么?它总是先到超类 Abs 然后再到子类吗?是不是先去子类,因为sublclass是作为参数传入的,然后JVM会检查子类中是否提供了实现代码,如果没有,如果有实现代码就调用超类方法?
.net - 注册/注销到 .NET 事件是一个恒定时间操作吗?
最初,我假设是的,因为我知道多播委托的调用列表是作为链表实现的,它支持恒定时间的插入和删除。然而,由于多播委托是不可变的,似乎任何添加/删除操作实际上都需要复制调用列表。这是正确的,还是我错过了什么?
注册/注销的成本很有趣,因为我有一个长期运行的应用程序,它经常将各种短期对象的处理程序注册到事件中,然后在它们被释放之前注销它们。调用列表可能会变得相当长,所以我真的希望这是一个恒定时间操作。
java - 寻找一种从 C++ 调用 Java 的便捷方式
似乎大多数与 JNI(Java 本机接口)相关的文档或帮助程序库都与从 Java 调用本机代码有关。这似乎是它的主要用途,尽管它有更多功能。
我想主要朝相反的方向工作:通过向其中添加一些 Java 库来修改现有的(相当大的)可移植 C++ 程序。例如,我想让它通过 JDBC 调用数据库,或者通过 JMS 调用消息队列系统,或者发送电子邮件,或者调用我自己的 Java 类等。但是对于原始 JNI,这是非常不愉快且容易出错的。
因此,理想情况下,我想编写可以像 C++/CLI 调用 CLR 类一样轻松调用 Java 类的 C++ 代码。就像是:
这样,我就不必通过传递名称和奇怪的签名字符串来手动完成获取方法 ID 的工作,并且可以避免因调用方法的未经检查的 API 引起的编程错误。事实上,它看起来很像等效的 Java。
注意。我还在谈论使用 JNI!作为一项底层技术,它非常适合我的需求。它是“进行中的”并且非常高效。我不想在单独的进程中运行 Java 并对它进行 RPC 调用。JNI 本身很好。我只想要一个愉快的界面。
必须有一个代码生成工具来生成等效的 C++ 类、命名空间、方法等,以完全匹配我指定的一组 Java 类所公开的内容。生成的 C++ 类将:
- 让成员函数接受其参数的类似包装版本,然后执行必要的 JNI 巫术来进行调用。
- 以相同的方式包装返回值,以便我可以以自然的方式链接调用。
- 维护每个类的方法 ID 静态缓存,以避免每次都查找它们。
- 完全线程安全、可移植、开源。
- 每次方法调用后自动检查异常并产生标准 C++ 异常。
- 当我以通常的 JNI 方式编写本机方法但我需要调用其他 Java 代码时也可以使用。
- 数组应该在原始类型和类之间完全一致地工作。
- 毫无疑问,当它们需要在本地参考框架之外生存时,需要像 global 之类的东西来包装引用 - 同样,对于所有数组/对象引用应该同样工作。
是否存在这样一个免费的、开源的、可移植的库/工具,还是我在做梦?
注意:我发现了这个现有的问题,但在那种情况下,OP 并没有我对完美的要求......
更新:关于 SWIG 的评论让我想到了这个先前的问题,这似乎表明它主要是关于相反的方向,所以不会做我想要的。
重要的
- 这是关于能够编写操作 Java 类和对象的 C++ 代码,而不是相反(见标题!)
- 我已经知道 JNI 存在(请参阅问题!)但是 JNI API 的手写代码不必要地冗长、重复、容易出错、在编译时未进行类型检查等。如果你想缓存方法 ID 和类对象它更加冗长。我想自动生成为我处理所有这些的 C++ 包装类。
更新:我已经开始研究自己的解决方案:
https://github.com/danielearwicker/cppjvm
如果这已经存在,请告诉我!
注意。如果您正在考虑在自己的项目中使用它,请随意,但请记住,现在代码已经有几个小时了,到目前为止我只写了三个非常不费力的测试。
c# - 从 web 服务获取“原始”xml
我正在尝试使用 ServiceContractGenerator 生成 Web 服务代理类。但问题是我想从 web 服务接收一个“原始”xml(它可能是一个字符串或 XmlNode,没关系)。有没有办法在生成代理之前修改 Web 服务合同或做其他事情来获得我需要的东西?
java - 哪些环境变量会影响“java”二进制文件?
大多数 unix 命令的操作会根据环境变量的值而改变,它们的手册页中都有一个“环境变量”部分。java 二进制文件(Sun/Oracle Java 6)没有这样的运气,尽管我相当肯定 CLASSPATH 和 JVM_OPTS 之类的东西会产生影响。
谁能指出影响“java”二进制文件的环境变量列表?
ruby - 雷神错误地称为异常
当我通过调用文件时
我明白了
问题出在哪里?
constructor - XamlParseException 停止项目
我正在使用“Microsoft VS C# 2010 Step by Step”一书学习 C# 2010,该书的第 27 章介绍了任务并行库。当我运行提供的“GraphDemo”项目时,出现 XamlParseException 错误。我在同一个异常上检查了该站点上的几个线程,并设法深入了解内部异常以加载 PerformanceCounter 失败。由于担心系统的 .NET Framework 4 安装损坏,我将其修复为原始状态,但错误仍然存在。奇怪的是,这本书的其他读者都没有抱怨过这个问题。在我写信给出版商之后,作者让我给他发送一个项目的压缩文件,他声称它在他的机器上运行良好。第 27 章中还有其他七个项目,它们都在我的系统上抛出了相同的错误。
这是生成的异常的全文:
第 25 行是初始化 memCounter 的地方。
我将感谢我能得到的所有帮助。
javascript - 如何使用 JavaScript 调用此函数?
我只是在使用基本级别的 javascripts。今天,当新数据添加到 DIV 时,我发现了以下内容并向下滚动 DIV 层。我不明白如何调用函数。是要使用window.onload
函数吗?或任何其他。我应该在哪里声明 DIV 名称?
代码如下。
更新1:
iphone - 使用 NSInvocation 导致 SIGABRT
我已经学习了一些教程,但似乎无法使它们适应我的需要。简单地说,我有一个管理器对象,它返回一个NSInvocation
在应用程序中稍后存储和调用的对象。
当我运行应用程序时,我的方法签名为空,甚至尝试NSInvocation
从 getter 分配 a 会导致SIGABRT
.
cars all 方法只返回一个数组“1”、“2”、“3”、“4”。在我的对象管理器中,我这样做:
我这样称呼它:
就是这样,我什至无法调用或分配调用的目标等。我尝试的任何事情都行不通。