jjzjj

delegate

全部标签

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

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

java - 如何为现有代码记录List接口(interface)方法

我现有的代码库有时会使用ArrayList或LinkedList,我需要找到一种方法来在调用添加或删除时进行记录,以跟踪已添加或删除的内容。确保我已登录的最佳方法是什么?例如。ArrayListlist=newArrayList();list.add(123);和LinkedListanotherNewList=newLinkedList();anotherNewList.add(333);不确定我是否可以拦截add方法来实现此目的,或者创建实现java.util.List接口(interface)的重写类然后改用它。无论哪种方式,我都在寻找一个好的解决方案,它需要最少的干预并且最好不

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

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

java - 如何获取preparedstatement中的batch数?

我想这一定很简单。为此必须有一些方法。这就是我想要的:-PreparedStatementps=...ps.addBatch();ps.addBatch();ps.addBatch();logger.info("totalBatches:"+ps.someMethod());ps.executeBatch();结果将是:总批处理:3;如果没有这样的方法,那怎么办呢? 最佳答案 不支持此功能。但是您可以通过添加计数成员来包装Statement并覆盖addBatch()。如果使用ApacheCommonsDBCP,您可以从Delegat

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

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

java - Guava ForwardingList 使用示例

我正在寻找解释GuavaForwardingList类的示例代码。基本上我正在实现一个自定义ArrayList类,它将用于解决myearlierSOquestion中提到的这个要求。.我以前从未使用过谷歌Collection。但是只要看看JavaDocofForwardingList,我想我可以通过子类化ForwardingList来实现我的自定义类。 最佳答案 ForwardingList(extendsForwardingCollection,又是extendsForwardingObject)实现了decoratorpatte

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++ - 将 C++ 类与 Objective C 类混合

我使用的是iphoneSDK,主要使用C++进行编码,同时使用obj-c中的部分SDK。在需要obj-c类的情况下是否可以指定C++类?例如:1)将委托(delegate)设置为obj-c对象时。我无法使C++类派生自委托(delegate)协议(protocol),因此这个原因和可能的其他原因阻止我使我的C++类成为各种obj-c对象的委托(delegate)。作为解决方案,我所做的是创建一个obj-c适配器类,其中包含指向C++类的ptr并用作委托(delegate)(在调用时通知C++类)。每次我需要将委托(delegate)通知发送给C++类时,都感觉很麻烦。2)设置选择器时这

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

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