问题列表 - 第23290页

如何在Java中实现抽象的单例类?

这是我的示例抽象单例类:

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来运行这些测试.

java inheritance singleton abstract-class classloader

23
推荐指数
2
解决办法
4万
查看次数

PHP代码注释解析速度

有没有人对解析PHP代码注释的速度有一个坚实的基准?意思是,过多的注释会增加处理PHP页面的时间吗?

php benchmarking comments

8
推荐指数
1
解决办法
1398
查看次数

无法从 MySQL 中删除行

我有一个表,它不会删除一行。具体来说,当我尝试删除 GEO_SHAPE_ID 超过 150000000 的任何行时,它根本不会从数据库中消失。

\n\n

我努力了:

\n\n
    \n
  1. SQLyog 来删除它。
  2. \n
  3. 从表中删除\nGEO_SHAPE_ID = 150000042(0 行\n受影响)。
  4. \n
  5. 然后解锁表格2。
  6. \n
\n\n

据我所知,bigint 是 auto_increment 的有效候选者。有人知道会发生什么吗?\n每当我执行上述任何操作并刷新表列表时,该行都会重新出现。\n你必须帮助我们,博士。我们\xe2\x80\x99没有尝试过\xe2\x80\x99,我们\xe2\x80\x99都没有想法!

\n\n

DJ。

\n\n

编辑:根据 Daniel Vassallo 的建议:

\n\n
mysql> SELECT * FROM `GEO_SHAPE` WHERE GEO_SHAPE_ID = 150000042;\nEmpty set (0.01 sec)\n
Run Code Online (Sandbox Code Playgroud)\n\n

回答:在 MySQL 中发现“检查”和“修复”命令后,我发现了损坏的密钥,因此修复了这些命令并且它起作用了。

\n\n

附言。这是表结构和一些示例数据,仅供大家搞笑。

\n\n
CREATE 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)

mysql database delete-row

5
推荐指数
1
解决办法
2万
查看次数

PHP爆炸未填充数组点0

我有一个文件,我们将在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文件以确保第一个#前面没有任何空格或隐藏字符,所以我不知道为什么会发生这种情况,除了我觉得我错过了一些非常简单的东西.有任何想法吗?

提前致谢!

php explode

0
推荐指数
1
解决办法
1171
查看次数

从IronPython调用C#对象方法

我正试图在我的游戏中嵌入脚本引擎.由于我是用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那样成熟.如果它足够接近,我可能会接受它.

有任何想法吗?我知道这必须是简单的事情.

c# ironpython ironruby

3
推荐指数
1
解决办法
3938
查看次数

git-difftool:使用meld进行完整文件树比较?

有没有一种简单的方法可以将旧git提交的文件树与工作文件树进行比较?

git-difftool做了非常相似的事情,但我不希望它实际上做任何差异; 重点是它调用的工具可以为它提供更好的界面.

git meld difftool

20
推荐指数
3
解决办法
9699
查看次数

代码中的WPF自动高度

如何将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)

我想在后面的代码中重现此行为.有任何想法吗?

c# wpf xaml

93
推荐指数
2
解决办法
9万
查看次数

HTML属性的自动插入双引号已损坏

在VS2008中,曾经是当我在.aspx页面中输入html属性时,当我点击'='时,会自动插入一对双引号并将光标放在其中.我想我已经改变了设置,但我不知道要改变什么来恢复功能.

如果它有所作为,我正在使用Resharper.

asp.net visual-studio

12
推荐指数
1
解决办法
2393
查看次数

sscanf包装函数在C中前进字符串指针

我有一个函数,它进行一系列调用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().有没有办法解决这个问题,或者我是否也可以在每次通话时手动处理簿记?

c scanf variadic-functions

7
推荐指数
1
解决办法
2498
查看次数

可以继续使用continuation作为递归的替代吗?

以下函数为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)

ruby recursion continuations

4
推荐指数
1
解决办法
526
查看次数