我很难想出一个很好的方法来解释这个问题,所以让我试着通过例子来解释:
假设我有一些界面.为简单起见,我会说界面是IRunnable,它提供了一种方法Run.(这不是真实的;它只是一个例子.)
现在,假设我有一些预先存在的课程,让我们称之为Cheetah,我无法改变.它之前存在IRunnable; 我不能让它实现我的接口.但我想使用它就像它实现 - IRunnable可能因为它有一个Run方法,或类似的东西.换句话说,我希望能够拥有期望IRunnable和将使用的代码Cheetah.
好的,所以我总能写出CheetahWrapper一些交易.但幽默我,让我写一些更灵活的东西 - 怎么样RunnableAdapter?
我设想类定义是这样的:
public class RunnableAdapter : IRunnable {
public delegate void RunMethod();
private RunMethod Runner { get; set; }
public RunnableAdapter(RunMethod runner) {
this.Runner = runner;
}
public void Run() {
Runner.Invoke();
}
}
Run Code Online (Sandbox Code Playgroud)
直截了当,对吧?所以有了这个,我应该可以这样打个电话:
Cheetah c = new Cheetah();
RunnableAdapter ra = new RunnableAdapter(c.Run);
Run Code Online (Sandbox Code Playgroud)
现在,瞧,我有一个实现的对象,IRunner并且在其心中是一个Cheetah …
我目前正在使用Google Analytics事件跟踪来跟踪我的Web应用程序中的用户界面交互.
由于我们的系统目前没有办法记录客户端错误,因此作为快速修复,我将事件跟踪代码放在catch块和Web服务错误处理程序中.
有没有人这样做?它有效,还是你推荐其他东西?
谢谢
我希望得到1/7更好的精确度,但它被截断了.当我转换有理数时,如何才能获得更好的精度?
>>> str(1.0/7)[:50]
'0.142857142857'
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个接受可变数量参数的函数,比如printf,做一些事情,然后将变量列表传递给printf.我不知道如何做到这一点,因为它似乎必须将它们推入堆栈.
大概是这样的东西
#include <stdio.h>
#include <stdarg.h>
void forward_args( const char *format , ... ){
va_list arglist;
printf( format, arglist );
}
int main (int argc, char const *argv[]){
forward_args( "%s %s\n" , "hello" , "world" ); return 0;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
在Pragmatic Core Data一书中,我遇到了一个NSStringsetter的代码片段:
- (void)setMyString:(NSString*)string;
{
@synchronized(self) {
if ([string isEqualToString:myString]) return;
[myString release];
myString = [string retain];
}
}
Run Code Online (Sandbox Code Playgroud)
有没有理由使用[string isEqualToString:myString]而不是在string == myString这里?这不是说如果两个字符串具有相同的内容,结果将不同于它们实际上是同一个对象吗?这有关系吗?
谢谢.
基本上我试图让许多Java客户端连接到我的ColdFusion服务器上的套接字(使用套接字网关).然而,在我开始编码之前,我对插座及其性能有点困惑.首先,套接字是针对连接到一台服务器上的一个套接字(比如端口2202)的许多(1000+)客户端吗?如果等待的所有内容基本上都是ping,或者当这些客户端收到此"ping"时它们可以获得一些新数据的话,性能如何.
谢谢,费萨尔阿比德
这是一段简单的C++代码片段:
A foo(){
A a; // create a local A object
return a;
}
void bar(const A & a_r){
}
bar(foo());
Run Code Online (Sandbox Code Playgroud)
为什么函数栏的参数必须是const引用,而不仅仅是引用?
Edit1:我知道引用是为了避免复制开销.和const是只读的.但是在这里我必须使它成为const引用,否则如果我删除"const",g ++将向我抛出一个错误.
Edit2:我的猜测是foo()的返回对象是一个临时对象,不允许更改临时对象的值?
我是Eclipse的新手.我试图运行一个使用iText生成PDF的jsp示例,我将iText.jar文件放在Referense Library文件夹中,但是当我运行jsp时,我收到错误信息,即在iText中定义的类Document,jar不能没有解决.
我试图找到在Tomcat中运行的Spring webapp中传递复杂配置的最佳方法.目前,我使用JNDI将数据源和字符串从Tomcat上下文传递到webapp,这很有效.
但是,让我说我需要选择通知服务的实现.Spring无法有条件地选择实例化哪个bean(尽管在过去我使用JNDI字符串通过设置contextConfigLocation来导入预定义的bean配置).
我还看到很多webapps提供了一个配置工具,它将创建一个自定义WAR文件.在我看来,这是一种糟糕的形式,如果没有其他原因,它会阻止从上游重新部署WAR而不进行多次检查,以确保所有配置都已重新应用.
理想情况下,我可以在webapp之外提供存在于文件系统上的Spring XML文件.但是,spring import指令似乎没有解决$ {}变量,因此无法提供自定义.
我是否可以使用任何技术将复杂配置与webapp正确分开?