这是我的示例抽象单例类:
public abstract class A {
protected static A instance;
public static A getInstance() {
return instance;
}
//...rest of my abstract methods...
}
Run Code Online (Sandbox Code Playgroud)
以下是具体实施:
public class B extends A {
private B() { }
static {
instance = new B();
}
//...implementations of my abstract methods...
}
Run Code Online (Sandbox Code Playgroud)
不幸的是我无法在B类中获取静态代码来执行,因此实例变量永远不会被设置.我试过这个:
Class c = B.class;
A.getInstance() - returns null;
Run Code Online (Sandbox Code Playgroud)
还有这个
ClassLoader.getSystemClassLoader().loadClass("B");
A.getInstance() - return null;
Run Code Online (Sandbox Code Playgroud)
在eclipse调试器中运行这两个,静态代码永远不会被执行.我可以找到执行静态代码的唯一方法是将B的构造函数的可访问性更改为public,并调用它.
我在Ubuntu 32bit上使用sun-java6-jre来运行这些测试.
有没有人对解析PHP代码注释的速度有一个坚实的基准?意思是,过多的注释会增加处理PHP页面的时间吗?
我有一个表,它不会删除一行。具体来说,当我尝试删除 GEO_SHAPE_ID 超过 150000000 的任何行时,它根本不会从数据库中消失。
\n\n我努力了:
\n\n据我所知,bigint 是 auto_increment 的有效候选者。有人知道会发生什么吗?\n每当我执行上述任何操作并刷新表列表时,该行都会重新出现。\n你必须帮助我们,博士。我们\xe2\x80\x99没有尝试过\xe2\x80\x99,我们\xe2\x80\x99都没有想法!
\n\nDJ。
\n\n编辑:根据 Daniel Vassallo 的建议:
\n\nmysql> SELECT * FROM `GEO_SHAPE` WHERE GEO_SHAPE_ID = 150000042;\nEmpty set (0.01 sec)\nRun Code Online (Sandbox Code Playgroud)\n\n回答:在 MySQL 中发现“检查”和“修复”命令后,我发现了损坏的密钥,因此修复了这些命令并且它起作用了。
\n\n附言。这是表结构和一些示例数据,仅供大家搞笑。
\n\nCREATE TABLE `GEO_SHAPE` (\n `GEO_SHAPE_ID` bigint(11) NOT NULL auto_increment,\n `RADIUS` float default '0',\n `LATITUDE` float default '0',\n `LONGITUDE` float default '0',\n `SHAPE_TYPE` enum('Custom','Region') default NULL,\n `PARENT_ID` int(11) …Run Code Online (Sandbox Code Playgroud) 我有一个文件,我们将在UNIX格式下调用info.txt,其中只有以下内容:
#Dogs
#Cats
#Birds
#Rabbits
Run Code Online (Sandbox Code Playgroud)
我正在反对它:
$filename = "info.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd,filesize ($filename));
fclose ($fd);
$delimiter = "#";
$insideContent = explode($delimiter, $contents);
Run Code Online (Sandbox Code Playgroud)
现在一切看起来都很好,除非我显示数组我得到以下内容.
[0] =>
[1] => Dogs
[2] => Cats
[3] => Birds
[4] => Rabbits
Run Code Online (Sandbox Code Playgroud)
我检查了.txt文件以确保第一个#前面没有任何空格或隐藏字符,所以我不知道为什么会发生这种情况,除了我觉得我错过了一些非常简单的东西.有任何想法吗?
提前致谢!
我正试图在我的游戏中嵌入脚本引擎.由于我是用C#编写的,我认为IronPython非常合适,但我能够找到的例子都集中在用C#调用IronPython方法而不是IronPython脚本中的C#方法.
更复杂的是,我在Windows 7 64位上使用Visual Studio 2010 RC1.
IronRuby的工作方式与我预期的一样,但我对Ruby或Python语法不是很熟悉.
我在做什么:
ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
//Test class with a method that prints to the screen.
scope.SetVariable("test", this);
ScriptSource source =
engine.CreateScriptSourceFromString("test.SayHello()", Microsoft.Scripting.SourceCodeKind.Statements);
source.Execute(scope);
Run Code Online (Sandbox Code Playgroud)
这会产生错误,"'TestClass'对象没有属性'SayHello'"
使用"self.test.SayHello()"时,这个确切的设置适用于IronRuby
我使用IronRuby时很谨慎,因为它看起来并不像IronPython那样成熟.如果它足够接近,我可能会接受它.
有任何想法吗?我知道这必须是简单的事情.
有没有一种简单的方法可以将旧git提交的文件树与工作文件树进行比较?
git-difftool做了非常相似的事情,但我不希望它实际上做任何差异; 重点是它调用的工具可以为它提供更好的界面.
如何将HeightC#代码中WPF控件的属性值设置为" Auto"?
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
Run Code Online (Sandbox Code Playgroud)
我想在后面的代码中重现此行为.有任何想法吗?
在VS2008中,曾经是当我在.aspx页面中输入html属性时,当我点击'='时,会自动插入一对双引号并将光标放在其中.我想我已经改变了设置,但我不知道要改变什么来恢复功能.
如果它有所作为,我正在使用Resharper.
我有一个函数,它进行一系列调用sscanf(),然后,在每个函数之后,更新字符串指针以指向未被消耗的第一个字符,sscanf()如下所示:
if(sscanf(str, "%d%n", &fooInt, &length) != 1)
{
// error handling
}
str+=length;
Run Code Online (Sandbox Code Playgroud)
为了清理它并避免重复这几次,我想把它封装成一个很好的实用函数,看起来如下所示:
int newSscanf ( char ** str, const char * format, ...)
{
int rv;
int length;
char buf[MAX_LENGTH];
va_list args;
strcpy(buf, format);
strcat(buf, "%n");
va_start(args, format);
rv = vsscanf(*str, buf, args, &length); //Not valid but this is the spirit
va_end(args);
*str += length;
return rv;
}
Run Code Online (Sandbox Code Playgroud)
然后我可以简化下面的调用来删除附加参数/簿记:
if(newSscanf(&str, "%d", &fooInt) != 1)
{
// error handling
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我找不到一种方法将&length参数直接附加到arg列表的末尾或其他内部newSscanf().有没有办法解决这个问题,或者我是否也可以在每次通话时手动处理簿记?
以下函数为n = 5,000生成"堆栈级别太深(SystemStackError)"
def factorial(n)
n == 0 ? 1 : factorial(n -1) * n
end
Run Code Online (Sandbox Code Playgroud)
有没有办法使用continuation/callcc来避免这个错误?
注意:
我知道这可以在没有递归的情况下实现.例如
def factorial2(n)
(1..n).inject(1) {|result, n| result * n }
end
Run Code Online (Sandbox Code Playgroud) c# ×2
php ×2
asp.net ×1
benchmarking ×1
c ×1
classloader ×1
comments ×1
database ×1
delete-row ×1
difftool ×1
explode ×1
git ×1
inheritance ×1
ironpython ×1
ironruby ×1
java ×1
meld ×1
mysql ×1
recursion ×1
ruby ×1
scanf ×1
singleton ×1
wpf ×1
xaml ×1