问题列表 - 第1283页

Java TreeNode:如何防止 getChildCount 执行昂贵的操作?

我正在编写一个 Java 树,其中树节点可能有需要很长时间来计算的子​​节点(在这种情况下,它是一个文件系统,其中可能存在网络超时阻止从连接的驱动器获取文件列表)。

我发现的问题是:

  1. getChildCount()在用户特别请求打开树的特定分支之前调用。我相信这样做是为了JTree知道是否在节点旁边显示 + 图标。

  2. getChildCount()需要执行可能昂贵的操作的儿童的准确计数

  3. 如果我伪造 的值getChildCount(),树只会在要求枚举子节点之前为那么多子节点分配空间。(如果我返回 '1',我只会看到 1 个孩子被列出,尽管还有更多)

对孩子进行枚举可能既昂贵又耗时,我对此表示同意。但我不喜欢getChildCount()需要知道孩子的确切数量。

有什么办法可以解决这个问题吗?

补充:另一个问题是,如果一个节点代表一个软盘驱动器(多么古老!),驱动器将在用户请求其文件之前被轮询;如果驱动器中没有磁盘,则会导致系统错误。

更新:不幸的是,实现TreeWillExpand监听器不是解决方案。这可以让您否决扩展,但显示的节点数仍受 返回值的限制TreeNode.getChildCount()

java swing jtree

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

C++运算符的优先级"&"和" - >"

鉴于以下内容:

&row->count
Run Code Online (Sandbox Code Playgroud)

是否会评估&(row-> count)或者用C++评估(&row) - > count?

编辑:这是一个很好的C++优先级链接.

c++ operators operator-precedence

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

用于dll的App.config

我们有一个动态加载dll的"引擎"(无论位于某个目录中),并通过反射从它们调用Workflow类.

我们现在有一些新的工作流程需要访问数据库,所以我想我会在dll目录中放置一个配置文件.

但由于某种原因,我的工作流程只是看不到配置文件.

<configuration>
  <appSettings>
      <add key="ConnectString" value="Data Source=officeserver;Database=mydatabase;User ID=officeuser;Password=officeuser;" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

鉴于上面的配置文件,以下代码打印一个空字符串:

Console.WriteLine(ConfigurationManager.AppSettings["ConnectString"]);
Run Code Online (Sandbox Code Playgroud)

我想我想要的只是指定一个配置文件名,但我在这里遇到了问题.我只是没有得到结果.任何人有任何指针?

c# dll app-config

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

Flash和PHP脚本之间的安全通信

我对Flash知之甚少,但对于一个小小的Flash游戏,我必须使用PHP在数据库中存储得分和成功的用户尝试.现在,Flash在用户计算机上本地运行并连接到远程服务器.如何防止操纵游戏分数.这个用例有什么最佳实践吗?

php security flash

6
推荐指数
1
解决办法
4749
查看次数

修剪美元符号的简单方法(如果存在于C#中)

我有一个DataRow,我得到的元素之一是带有美元符号的金额.我正在调用一个toString.是否有其他方法我可以调用它来删除美元符号(如果存在).

所以类似于:

dr.ToString.Substring(1,dr.ToString.Length);

但更有条件的是,美元符号再次出现.

我试图通过显式定义另一个字符串来做到这一点.

c#

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

如何删除文件夹的Subversion控件?

我有一个文件夹,c:\websites\test它包含从不再存在的存储库中检出的文件夹和文件.如何让Subversion停止跟踪该文件夹以及任何子文件夹和文件?

我知道我可以简单地删除.svn文件夹,但是在很多层中有很多子文件夹.

svn

255
推荐指数
11
解决办法
30万
查看次数

将JavaScript字符串转换为全部小写?

如何将JavaScript字符串值转换为全部小写字母?

示例:"您的名字"改为"您的名字"

javascript string

1260
推荐指数
8
解决办法
43万
查看次数

如果你无法解决错误,你会怎么做?

你的代码中有没有错误,你无法解决?我希望我不是那里唯一一个有这种经历的人......

存在一些类别的错误,很难追查:

  • 与时序相关的错误(例如,在进程间通信期间发生)
  • 与内存相关的错误(大多数人都知道适当的例子,我猜!!!)
  • 与事件相关的错误(难以调试,因为您遇到的每个断点都会使您的IDE成为鼠标释放/焦点事件的目标......)
  • 依赖于操作系统的错误
  • 硬件相关的错误(发生在发布机器上,但不发生在开发人员机器上)
  • ...

说实话,我不时自己修复这样的错误......经过几个小时(有时甚至是几天)的调试后,我觉得非常士气低落.

在这种情况下你做了什么(除了向别人寻求帮助之外并不总是可行的)?

你呢

  • 使用铅笔和纸而不是调试器
  • 面对另一件事,稍后再回到这个bug
  • ...

请告诉我!

debugging

33
推荐指数
6
解决办法
7773
查看次数

在Perl中`$ hash {$ key} | = {}`做什么?

我正在和一些使用哈希引用的Perl搏斗.

最后,事实证明我的问题是这一行:

$myhash{$key} |= {};
Run Code Online (Sandbox Code Playgroud)

也就是说,"给$ myhash {$ key}一个对空哈希的引用,除非它已经有一个值".

然而,解除引用并尝试将其用作哈希引用会导致使用字符串作为哈希引用的解释器错误.

将其更改为:

if( ! exists $myhash{$key}) {
  $myhash{$key} = {};
}
Run Code Online (Sandbox Code Playgroud)

......让事情奏效.

所以我没有问题.但我很好奇发生了什么事.

谁能解释一下?

perl initialization hash-reference

3
推荐指数
2
解决办法
3032
查看次数

如何修复导致程序包在生产中失败的连接管理器错误?

我创建了一个SSIS包,它在我的开发机器上运行良好.但是,当我尝试在生产服务器上运行它时,它出错了我.

这是错误:

Error: The AcquireConection method call to the connection manager 
"DestinationConnectionOLEDB" failed with error code 0xC0202009.
Run Code Online (Sandbox Code Playgroud)

我已经找到了原因,但我不确定如何解决它.密码不在连接字符串中.但是我在SSIS项目中设置了密码.但是出于某种原因,当我在生产服务器上部署并运行它时,它将不会运行,因为密码不是连接字符串的一部分.

我需要更改SSIS项目中的一些设置才能使其正常工作吗?

谢谢.

sql sql-server ssis

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