草庐IT

Delegates

全部标签

java - Kotlin:如何在 Java 中使用委托(delegate)属性?

我知道您不能在Java中使用委托(delegate)属性语法,也不会像在Kotlin中那样享受“覆盖”set/get运算符的便利,但我仍然想使用现有的属性委托(delegate)在Java中。例如,一个简单的int委托(delegate):classIntDelegate{operatorfungetValue(thisRef:Any?,property:KProperty)=0}当然,在Kotlin中我们可以这样使用它:valxbyIntDelegate()但是我们如何在Java中以某种形式使用IntDelegate呢?这是开始,我相信:finalIntDelegatex=newIn

java - Java 中的自动委托(delegate)

我想向将在运行时生成的对象添加一些功能。然而,这个对象的接口(interface)非常大(而且不在我的控制之下)。我想将对象包装在我自己的类中,它添加了我想要的功能并将标准接口(interface)功能委托(delegate)给原始对象-有没有办法在Java中执行此操作而无需为每个对象创建1行复制粘贴委托(delegate)方法接口(interface)中的方法?我想避免的事情:classMyFooimplementsFoo{Foowrapped;voidmyMethod(){...}voidinterfaceMethod1()wrapped.interfaceMethod1();in

c# - Java 或 C# 中的事件/委托(delegate)

我一直在尝试了解事件/委托(delegate),但对两者之间的关系感到困惑。我知道委托(delegate)允许您调用不同的函数,而无需知道正在调用的特定函数。(例如:绘图函数需要接受输入,这些输入是要绘制的不同函数)。但我没有看到在事件中如何使用委托(delegate)。有人可以构建一个简单示例(使用伪代码或C#或Java)来说明与事件相关的委托(delegate)的工作方式吗?谢谢! 最佳答案 (这都是从C#的角度来看的。)我有一个articleaboutthedifferencesbetweeneventsanddelegate

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

c++ - QComboBox 不调用委托(delegate)方法

我想通过模型和委托(delegate)插入QWidgets(而不是字符串)来自定义QComboBox>:QComboBox*cb=newQComboBox(this);FeatureModel*featureModel=newFeatureModel(cb);cb->setModel(featureModel);ComboBoxItemDelegate*comboBoxItemDelegate=newComboBoxItemDelegate(cb);cb->setItemDelegate(comboBoxItemDelegate);FeatureModel继承自QAbstractLis

c# - 实现一个线程池,它可以在 C++ 中调用具有多个参数的函数

我已经用C#编写了一个ThreadPool实现,现在我想将它移植到标准C++中(如果可能,使用boost)。原来的C#版本可以使用委托(delegate)来调用多参数函数,代码是这样的:publicstaticvoidRunOrBlock(Functionfunction){WorkItemworkItem=newWorkItemNoArguments(function);RunOrBlock(workItem);}publicstaticvoidRunOrBlock(Functionfunction,T1t1){WorkItemworkItem=newWorkItem(functio

c++ - C++ 中的 Objective-C @protocol 等价物

A类有一个B类的实例作为成员。有时B类的实例想要与A类对话。在Objective-C中我可以这样做://A.h@interfaceA:NSObject@property(nonatomic,retain)B*b;@end//A.m-(void)classBsays{}//B.h@protocolBDelegate-(void)classBsays;@end@interfaceB:NSObject@property(nonatomic,assign)iddelegate;@end//B.m@implementationB-(void)f{[delegateclassBsays];}@en

c++ - 为什么在这种情况下 c++ 模板参数推导失败?

我正在尝试编写自己的委托(delegate)系统来替代boost::functions,因为后者做了很多我认为有问题的堆分配。我已经写了这个作为替换(简化,实际使用池内存和新位置,但这很简单,可以重现错误):templatestructDelegateFunctor:publicMyFunctor{DelegateFunctor(void(*fptr)(A,B),Aarg1,Barg2):fp(fptr),a1(arg1),a2(arg2){}virtualvoidoperator()(){fp(a1,a2);}void(*fp)(A,B);//Storesthefunctionpoi

c++ - QStyleOptionButton 没有图标

我遇到了一个奇怪的问题。我的QTableView中需要一些按钮。我曾经使用QAbstractItemView::setIndexWidget()方法,但在处理较大的模型时它不是很负责。因此我决定改用QStyledItemDelegate。我的按钮有图标(只有图标,没有文字)。在使用setIndexWidget时,我使用了以下代码:ClientDetailsButton::ClientDetailsButton(constClient*_client,QWidget*_parent):QPushButton("",_parent),__current(_client){setIcon(Q