草庐IT

anonymous-delegates

全部标签

Java 等效于 C# Delegates(将要执行的各种类的方法排队)

简单描述:是否有与C#的delegates等效的Java这将允许我将各种类的方法排队并动态地将它们添加到队列中?语言构造而不是代码。上下文:我以前使用过Unity3D,我喜欢脚本的Update方法。只需声明该方法即可将其添加到每帧执行的方法列表中。我想在我的LWJGL游戏中创建类似的东西。为此,我想使用委托(delegate)(或类似的东西)。是否有任何Java语言结构可以让我这样做?我更喜欢包含两个或更多(这样我就可以挑选最适合我的代码的)构造和使用它们的方法的答案。我不想要代码,我只想知道从哪里开始。编程中最有趣的部分是解决问题,我不想被剥夺这一点。另外,我不想被确切地告知如何去做

java - Java 与 .NET Func<> 和 Action<> 委托(delegate)最接近的是什么?

显然,Java没有委托(delegate)或函数作为第一类值,而是使用接口(interface),但最接近Func或Action.NET委托(delegate)的接口(interface)是什么?有Runnable和Callable,但仅限于不带参数的类型。由于Java不能有具有相同名称和不同数量的泛型类型参数的重载类型,我理解不能有单一的共享接口(interface)名称,但可以有Runnable1、Runnable2等等。这种编程风格是否没有在Java中使用,或者我是否缺少任何现有接口(interface)? 最佳答案 我对.N

java.lang.NoClassDefFoundError : in anonymous inner class 错误

我在带有sun/oracleJVM1.6_23的LinuxRedHat上运行此代码,在VMWare服务器内。一段时间后,JVM似乎无法访问我的匿名内部类。我的类路径很好,因为它可以工作一段时间。我得到的只是像这样的错误:java.lang.NoClassDefFoundError:com/mycompany/impl/MyClassImpl$1atcom.mycompany.impl.MyClassImpl.markAsDeletable(MyClassImpl.java:45).第45行是下面的第一行,它找不到我的新谓词DomaineVOdomaineVO=Iterables.fin

java - Hibernate:无法访问 TransactionManager 或 UserTransaction 以进行物理事务委托(delegate)

我使用Servlets、PostgreSQL和Hibernate以及EntityManager来构建Web应用程序,一切正常,直到我将该项目移至基于Maven的项目。现在我每次尝试从EntityManagerFactory创建EntityManager时都会遇到这个奇怪的异常:org.hibernate.resource.transaction.backend.jta.internal.JtaPlatformInaccessibleException:UnabletoaccessTransactionManagerorUserTransactiontomakephysicaltrans

java - 向 Java 程序员解释 Objective-C 委托(delegate)

我是Objective-C的新手,但在Java方面经验丰富。Java中是否有Objective-C“委托(delegate)”的等效概念,以便我可以更好地理解这个概念?有没有办法在Java中模拟委托(delegate)概念? 最佳答案 委派只是一种避免必须将对象(如TableView)子类化以实现应用程序特定行为的方法,而是将责任交给Controller。当您创建TableView时,您为其分配一个Controller对象,该对象实现一组已定义的方法(一些可能是必需的,其他可能是可选的)。当TableView需要数据或必须决定如何显

java - jmh 表示 M1 比 M2 快,但 M1 委托(delegate)给 M2

我写了一个JMH基准测试,涉及2个方法:M1和M2。M1调用M2,但出于某种原因,JMH声称M1比M2快。这是基准源代码:importjava.util.concurrent.TimeUnit;importstaticorg.bitbucket.cowwoc.requirements.Requirements.assertThat;importstaticorg.bitbucket.cowwoc.requirements.Requirements.requireThat;importorg.openjdk.jmh.annotations.Benchmark;importorg.open

c# - 将 C++ 函数指针设置为 C# 委托(delegate)

我有一个非托管的C++应用程序作为COM客户端和一个C#COM服务器。现在我希望COM服务器可以调用C++函数。C#:[ClassInterface(ClassInterfaceType.AutoDual)]publicclassSomeType{[UnmanagedFunctionPointer(CallingConvention.Cdecl)]publicdelegatevoidDeleCallBack(stringinfo);publicDeleCallBackCallBack;publicvoidSetCallBack(refIntPtrptr){CallBack=(DeleC

c++ - 分配给 *this 用于构造函数委托(delegate)

我正在查看C++11中的一些新功能,但由于我当前的GCC版本,我无法使用构造函数委托(delegate)。但这让我开始考虑像这样复制该功能:classA{public:A():num(42){}A(intinput){*this=A();num*=input;}intnum;};它当然可以编译并且工作正常,下面的代码:Aa;cout返回这个,这是正确的。4284显然这是一个非常简单的例子,但除了内存效率低下(两个A被创建,一个在被销毁之前被另一个覆盖)之外,还会出现什么问题?这看起来确实像是一种代码味道,但我想不出真正好的理由。 最佳答案

当 C++ 使用智能指针时,C# 委托(delegate)等效

我主要是一名从事C++项目的.NET程序员,我正在尝试确定处理使用Action和Function模板类型的委托(delegate)的等效方法。我将委托(delegate)用作.NET代码中的事件和回调。我的C++项目使用智能指针和与C#程序相同的委托(delegate)设计模式。处理这种情况的最佳方法是什么?我不清楚如何传递和维护一个函数指针,该函数指针还跟踪智能指针并可能删除底层对象,因为事件容器使用弱引用。该库需要是多平台的,因此不幸的是,使用CLR不是一种选择。 最佳答案 您正在寻找的是绑定(bind)到现有对象的方法指针,就

c# - 将 boost::signal 包装到 C# 委托(delegate)

假设我有一个异步库,用nativeC++编写,具有与此类似的接口(interface):classconnection{public:boost::signalsig_connection_made;boost::signalsig_error;voidconnect(conststd::string&host,conststd::string&port);};我想用C#包装。有谁知道使用SWIG或类似东西的方法可以让我将信号绑定(bind)到C#委托(delegate)? 最佳答案 您可以使用SWIG将委托(delegate)从C