自升级Eclipse(Galileo build 20090920-1017)以来,在调试中悬停不再显示变量的值.相反,悬停行为就像我在普通的Java透视图中一样:
alt text http://michaelzanussi.com/wp-content/uploads/2009/11/debug_hover.png
我试过清理项目,重新导入它等等都无济于事.我在这里缺少什么?
我当前的构建主管在理论上有一个好主意 - 构建一个自定义Log4J appender,它接受Spring管理的bean并使用它们将错误记录到除标准日志文件之外的各种其他源.但是,除了创建一个在启动时使用应用程序上下文(代码片刻)初始化的单例之外,我似乎无法想到在Log4J appender中检索Spring托管bean的任何其他选项.
public class SpringSingleton implements ApplicationContextAware {
private static ApplicationContext context;
public SpringSingleton() {
super();
}
public static ApplicationContext getContext() {
return SpringSingleton.context;
}
public void setApplicationContext(ApplicationContext context) {
if(SpringSingleton.context != null) {
throw new IllegalStateException("Context is already set!");
}
SpringSingleton.context = context;
}
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,这些属性可以像Spring中的bean一样通过依赖注入设置 - 无论初始化多少个appender,bean引用都不会改变.有任何想法吗?
是否有更短(或许更pythonic)的方式打开文本文件并读取以注释字符开头的行?
换句话说,这是一种更简洁的方式
fin = open("data.txt")
line = fin.readline()
while line.startswith("#"):
line = fin.readline()
Run Code Online (Sandbox Code Playgroud) Go的口号之一是不要通过共享记忆来沟通; 相反,通过沟通分享记忆.
我想知道Go是否允许在同一台机器上运行的两个不同的Go-compiled二进制文件相互通信(即客户端 - 服务器),以及与C++中的boost :: interprocess相比有多快?到目前为止,我看到的所有例子都只说明了相同程序例程之间的通信.
一个简单的Go示例(具有单独的客户端和服务器代码)将非常感谢!
在数据库中模拟Tagged union的最佳方法是什么?我在谈论这样的事情:
create table t1 {
vehicle_id INTEGER NOT NULL REFERENCES car(id) OR motor(id) -- not valid
...
}
Run Code Online (Sandbox Code Playgroud)
其中vehicle_id将在汽车表或电机表中为id,并且它将知道哪个.
(假设电动机和汽车桌没有任何共同点
我有一些Javascript JQuery代码,每隔5分钟对服务器进行一次Ajax调用,这是为了让服务器会话保持活动并保持用户登录.我$.ajax()在JQuery中使用方法.这个函数似乎有一个'错误'属性,我试图在用户的互联网连接断开时使用,以便KeepAlive脚本继续运行.我正在使用以下代码:
var keepAliveTimeout = 1000 * 10;
function keepSessionAlive()
{
$.ajax(
{
type: 'GET',
url: 'http://www.mywebapp.com/keepAlive',
success: function(data)
{
alert('Success');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Failure');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
}
});
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我会在屏幕上每10秒钟在一个警告框中弹出"成功",这很好.但是,一旦我拔下网线,我就什么也得不到,我期待错误功能被调用并看到"故障"警告框,但没有任何反应.
假设'错误'功能仅适用于从服务器返回的非'200'状态代码,我是否正确?有没有办法在进行Ajax调用时检测网络连接问题?
好的,我在这里疯了.在过去(差不多)四年中,我一直在从Delphi 5 IDE中遇到一些非常糟糕的行为.问题包括:
最大的问题是我的老板不相信这种情况发生在没有任何用户改变的情况下会出现这些问题.我已经擦过并重新加载了Delphi几次,但这不是我现在可以再做的事情.列出的大多数问题都可以轻松恢复(重新加载IDE或从源代码管理中重新复制文件),但这完全是疯了.我已经从编译时删除了所有警告和提示,但没有掩盖它们.我已尽力遵循Marco和微软的最佳实践.这只是我吗?我是疯了吗?我怎样才能阻止德尔福引起这些麻烦呢?
我有两个功能,我应该使用哪一个?请解释一下差异.
A:
- (NSMutableArray *)FunctionA:(int)count {
NSMutableArray *a = [[NSMutableArray alloc] init];
for (int i = 0; i < count; i++) {
[a addObject:[NSNumber numberWithInt:0] ];
}
return [a autorelease];
}
Run Code Online (Sandbox Code Playgroud)
B:
-(NSMutableArray *)FunctionB:(int)count {
NSMutableArray *b = [NSMutableArray arrayWithCapacity:count];
for (int i=0;i<count; i++){
[b addObject:[NSNumber numberWithInt:0] ];
}
return b; // or [b autorelease] ?
}
Run Code Online (Sandbox Code Playgroud) 有没有办法将Java的XPath设置为表达式的默认名称空间前缀?例如,代替:/ html:html/html:head/html:title/text()",查询可以是:/ html/head/title/text()
使用命名空间前缀时,必须有一种更优雅的方式.
我现在正在做的示例代码片段:
Node node = ... // DOM of a HTML document
XPath xpath = XPathFactory.newInstance().newXPath();
// set to a NamespaceContext that simply returns the prefix "html"
// and namespace URI ""http://www.w3.org/1999/xhtml"
xpath.setNamespaceContext(new HTMLNameSpace());
String expression = "/html:html/html:head/html:title/text()";
String value = xpath.evaluate(query, expression);
Run Code Online (Sandbox Code Playgroud) 在看了Go如何处理界面并喜欢它之后,我开始考虑如何在C#中实现类似的鸭子类型:
var mallard = new Mallard(); // doesn't implement IDuck but has the right methods
IDuck duck = DuckTyper.Adapt<Mallard,IDuck>(mallard);
Run Code Online (Sandbox Code Playgroud)
该DuckTyper.Adapt方法将用于动态System.Reflection.Emit构建适配器.也许有人已经写过这样的东西了.我想它与模拟框架已经做的并没有太大的不同.
但是,如果Mallard实际上没有正确的IDuck方法,这将在运行时抛出异常.为了在编译时更早地得到错误,我必须编写一个MallardToDuckAdapter我正在努力避免的错误.
有没有更好的办法?
编辑:显然,我称之为"安全鸭子打字"的正确术语是结构打字.