Tag: 委托

DelegatingVehicleTracker(第65页Goetz)如何返回“实时”视图?

在Java Concurrency in Practice的第65和66页上,Brian Goetz列出了以下代码: @ThreadSafe public class DelegatingVehicleTracker { private final ConcurrentMap locations; private final Map unmodifiableMap; public DelegatingVehicleTracker(Map points) { locations = new ConcurrentHashMap(points); unmodifiableMap = Collections.unmodifiableMap(locations); } public Map getLocations() { return unmodifiableMap; } public Point getLocation(String id) { return locations.get(id); } public void setLocation(String id, int x, int y) { if […]

为什么不使用.NET样式的委托而不是Java中的闭包?

好吧,这将是我第三次击败垂死的马。 但是,这个问题与我之前的两个关于闭包/代表的问题不同,后者询问代表的计划以及闭包的预计规范和实现是什么。 这个问题是关于 – 当我们可以简单地从我们心爱的友好邻居 – 微软窃取委托锁,股票和桶的整个概念时,为什么Java社区在努力定义3种不同类型的闭包。 有两个非技术性的结论我很想进入: Java社区应该保持自己的骄傲,代价是需要付出沉重的努力,不要屈服于借用任何微软的概念或以其他方式certificate微软的辉煌。 代表是微软的专利技术。 好的,除了以上两种可能性, Q1。 .NET风格的代理中是否存在三种(或更多种)封闭forms会解决的弱点或不足之处? Q2。 我在Java和C#之间转换时问这个问题,这让我觉得C#代理正是我所需要的。 是否有可在C#代理中当前不可用的闭包中实现的function? 如果是这样,他们是什么,因为我看不到我需要什么比C#代表给我足够的东西? Q3。 我知道在java中实现闭包/委托的一个问题是减少语言的正交性,其中不止一种方式暴露于执行特定任务。 为了确保java保持其正交性水平,是否值得花费卷积和花费时间来避免代表? 在关系设计中,我们知道通过经常充分满足第二范式来打破正交是可取的。 为简单起见,为什么java不能减少正交性和OO-ness? Q4。 JVM的体系结构在技术上受限于实现.NET样式的委托。 如果这个原因(强调不可能的虚拟)是真的,那么为什么三个闭包提议不能隐藏在简单的委托关键字或注释之后:如果我们不喜欢使用@delegate,我们可以使用@method。 我看不出委托语句格式如何比三个闭包提案更复杂。

Java相当于Cocoa委托/ Objective-C非正式协议?

什么是Java代替Cocoa代理? (我知道我可以将一个接口传递给一个类,并让该类调用适当的方法,但我想知道是否还有其他方法可以实现更接近Cocoa / Objective-C的非正式协议)

Java中的委托与回调

我对Java中的委托和回调条款有一些误解。 class MyDriver { public static void main(String[] argv){ MyObject myObj = new MyObject(); // definition of HelpCallback omitted for brevity myObj.getHelp(new HelpCallback () { @Override public void call(int result) { System.out.println(“Help Callback: “+result); } }); } } class MyObject { public void getHelp(HelpCallback callback){ //do something callback.call(OK); } } 它是回调还是委托( 委托和回调是相同还是相似? )? 如何实施另一个?

Swing:将事件委托给已转换父级的子组件

我有一个自定义组件GameViewCanvas extends JPanel ,它将包含许多区块(800×800纹理)。 现在在GameViewCanvas中我重写了paint()方法,以便它将子项绘制在转换后的canvas上(缩放,平移和旋转)。 我现在想要将像MouseEvent和MouseMotionEvent这样的事件委托给相应的孩子 – 问题当然是Swing不知道孩子们在实际框架中的位置。 我以为我可能只能在父级中覆盖像getComponentAt这样的方法但没有这样的运气 – 我认为Swing直接在子代中循环? 也许我说这一切都错了,所以请建议。 提前致谢。

如何使用varargs方法中的附加参数调用varargs方法

我有一些varargs系统函数,其中T是一些实际类型,如String : sys(T… args) 我想创建自己的函数,它委托给系统函数。 我的function也是一个varargsfunction。 我想通过系统函数传递函数的所有参数,以及一个额外的尾随参数。 像这样的东西: myfunc(T… args) { T myobj = new T(); sys(args, myobj); // <- of course, here error. } 如何更改错误行? 现在我只看到一种方法:创建维度为[args] + 1的数组,并将所有项目复制到新数组中。 但也许存在一种更简单的方法?

如何将方法的Javadoc复制到其他方法的Javadoc中?

我知道有@inheritDoc ,但它只适用于覆盖其他方法的方法。 我有几个带有许多委托方法的类( 不会覆盖其他方法)。 他们的Javadoc可以“inheritance”(更确切地说:复制)吗? /** here I need the copy of wrappedMethod’s Javadoc */ public void delegateMethod(Object param){ innerSomething.wrappedMethod(param); }

Java中的函数指针/委托?

对于我的Java游戏服务器,我发送数据包的Action ID,它基本上告诉服务器数据包的用途。 我想将每个Action ID(一个整数)映射到一个函数。 有没有办法在不使用开关的情况下这样做?

Java或C#中的事件/代理

我一直在努力学习事件/代表,但我对两者之间的关系感到困惑。 我知道委托允许你调用不同的函数,而不需要知道调用什么特定的函数。 (例如:图形函数需要接受要绘制的不同函数的输入)。 但我没有看到代表如何在事件中使用。 有人可以构建一个简单的示例(伪代码或C#或Java),说明代理与事件相关的工作方式吗? 谢谢!

Objective-C相当于类方法中Java的匿名类

我想在Objective-C中的类方法中设置对象的委托。 伪代码: + (ClassWithDelegate*) myStaticMethod { if (myObject == nil) { myObject = [[ClassWithDelegate alloc] init]; // myObject.delegate = ? } return myObject; } 在Java中,我只需创建一个实现委托协议的匿名类。 如何在Objective-C中做类似的事情? 基本上我想避免创建一个单独的类(和文件)来实现一个简单的委托协议。