Disruptor快速入门
开源项目
知识点
相关文章
更多最近更新
更多Disruptor实现EventFactory接口创建实例对象
2019-05-20 00:08|来源: 网路
创建具体实体类
package com656463.quickstart; public class OrderEvent { /** * 订单的价格 */ private long value; public long getValue() { return value; } public void setValue(long value) { this.value = value; } }
实现 EventFactory 工厂类接口,重写newInstance方法,在此方法中创建对象
package com656463.quickstart; import com.lmax.disruptor.EventFactory; /** * 创建EventFactory工厂类,用于创建实例对象 */ public class OrderEventFactory implements EventFactory<OrderEvent> { /** * 返回空的数据对象(Event) * * @return */ @Override public OrderEvent newInstance() { return new OrderEvent(); } }
此时创建对象的逻辑就完成了,接下来看怎么使用。
相关问答
更多-
听起来你需要一个抽象的工厂。 除了IFoo ,使用CreateFoo方法创建一个接口IFooFactory 。 给Jim一个实现IFooFactory的对象的实例,Jim会调用CreateFoo方法。 创建实现IFooFactory的对象的实例可能是Sally或Pat的工作。 Sounds like you need an abstract factory. In addition to IFoo, create an interface IFooFactory with the CreateFoo met ...
-
你的类型不匹配。 SpawnableCollectible实现了ISpawnable
而不是ISpawnable 因此转换失败并且操作符返回null 。 Your types do not match. SpawnableCollectible implements ISpawnable not ISpawnable so the cas ... -
从javadoc for InstantiationException 当应用程序尝试使用类Class中的newInstance方法创建类的实例时抛出,但无法实例化指定的类对象。 实例化可能由于各种原因而失败,包括但不限于: class对象表示一个抽象类,一个接口,一个数组类,一个基本类型或 void该类没有nullary构造函数 您需要检查类,以查看是否可以从没有参数的公共构造函数创建实例。 From the javadoc for InstantiationException Thrown when a ...
-
您无法在.NET中创建接口的匿名实现。 你必须有一个具体的实现,但你可以隐藏它,轻松地提供相同类型的匿名化。 我已经.NET-ified你的命名约定,但它在这里是: Public Interface IMessageHandler(Of T) Sub Handle(message As T) End Interface Public NotInheritable Class MessageHandler Private Sub New() End Sub Private C ...
-
如果是由类实现的,接口是否会创建对象?(Does interface creates objects if it is implemented by a class? [closed])[2022-01-19]
接口没有构造函数,不能自己创建。 将对象分配给变量(包括接口类型的变量)不会创建新对象,它只是对同一对象的另一个引用。 class DerivedWithInterface: Base, IEnumerable {} 现在,您可以创建DerivedWithInterface类的实例并将其分配给任何基类/接口的变量,但只有new将创建一个对象: DerivedWithInterface item = new DerivedWithInterface(); IEnumerable asEnumerabl ... -
我会给出这个问题的典型答案:首先测试,并根据您的结果做出决定。 虽然您谈论效率,但您并不特别说性能是一项基本要求。 如果您对性能要求有了一些了解,可以使用队列和Disruptor的基本实现来模拟一个简单的原型,并测量两者的性能。 如果其中一个比另一个好得多,那就是你的答案。 但是,如果实施起来更加费力,特别是如果它不能提供您需要的效率,或者您没有任何硬性能要求,那么这表明解决方案不是正确的解决方案。 先测量一下,然后根据你的结果来决定。 I'll give our typical answer to thi ...
-
这样做效果更好。 我不需要创建接口的新实例。 public object Invoke(object instance, object[] inputs, out object[] outputs) { outputs = new object[0]; Type interfaceType = typeof(IESFPingable); Type T = instance.GetType(); FieldInfo[] fiel ...
-
如何为HttpServletRequest接口创建对象?(How it is possible to create object for HttpServletRequest Interface?)[2023-10-27]
servlet容器有一个实现此接口的类,并实例化该类的对象。 就像你做的那样 Listlist = new ArrayList (); List是一个接口,您实例化ArrayList ,它是一个实现List的类。 servlet容器执行以下操作: HttpServletRequest request = new TomcatHttpServletRequestImpl(); 这是OO和多态性的基础。 The servlet container has a class im ... -
是的。 它是一个实现接口的Anonymous类 。 之后的onclick是onclick的实现。 尝试这样做: View.OnClickListener listener=new View.OnClickListener() { public void onClick(View v) { //... } }; btn.setOnClickListener(listener); 这可能看起来更清楚。 Yes, it is. It is a Anonymous class that imple ...
-
需要我在InterfaceBase复制虚拟int声明吗? 如果我删除它们,我将无法在转换为InterfaceBase *后调用InterfaceB方法。 我能够调用InterfaceA方法但是对于InterfaceB我必须在InterfaceBase放置虚拟int声明。 这是因为您私下从InterfaceB继承而不是公开继承。 将您的代码更改为 class InterfaceBase : public InterfaceA, public InterfaceB { /* Your implement ...