小编Dan*_*ski的帖子

如何选择Java-COM桥?

我必须创建一个自动化Outlook和Word的应用程序,我想使用Java来完成该任务.(唯一允许的替代方案是VB6,所以...)

经过Google快速调查后,我找到了几个库,但我不确定使用哪个库:

我不知道如何比较这些库并做出明智的决定.似乎COM4J有点过时,JACOB泄漏内存(据称)和jacoZoom是商业版.每个人似乎都需要很多样板代码才能执行简单的方法调用.(考虑到COM的设计,这可能是不可避免的)

除此之外,我不知道如何在其中一个之间做出选择.哪一个是最好的?

java com

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

为什么短时间和长寿命对象在垃圾收集方面有所不同?

我经常读到,在Sun JVM中,短期对象("相对较新的对象")可以比长寿命对象("相对较旧的对象")更有效地进行垃圾收集.

  • 为什么会这样?
  • 这是特定于Sun JVM还是来自一般的垃圾收集原则?

java garbage-collection

22
推荐指数
3
解决办法
7296
查看次数

Delphi:显示窗口没有激活

我很难在主要表单上面显示第二个表单而不会失去焦点.

我试过了ShowWindow(second.handle, SW_SHOWNOACTIVATE),但主体失去了焦点.如果我Visible := false在第二个窗口上设置,则调用ShowWindow不会激活第二个窗体,但显示时窗口为空...

有没有人有这个好的食谱?

更新:我正在尝试做的是,在给定的事件中显示一个通知窗口.主要形式在任何时候都不会失去焦点,这一点至关重要.

delphi focus window

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

我如何说服我的共同程序员不要做偏执"只是为了确保编程"?

我经常发现,当程序员或分配任务的程序员并不真正理解解决方案如何工作时,他们会随意添加内容直到它工作.

例子:

重新绘制一个窗口,由于某种原因,它不会像程序员那样被绘制:

Invalidate();
Revalidate();
ProcessMessages(); 
Update();    
Repaint();
Repaint();
ProcessMessages(); 
Repaint();
Run Code Online (Sandbox Code Playgroud)

过度谨慎:

function test1(x: boolean) 
begin
  select case x
    true: // do something
    false: // do something else
    else
      raise Exception.Create("Invalid value.") // just to be sure
  end;
end;

function test2(x: Integer);
var
  y: Integer;
begin
  y = Abs(x);
  if y >= 0 then
  begin
    // do something
  end;
end;
Run Code Online (Sandbox Code Playgroud)

虽然特别是过于谨慎的编码实践会导致大多数语言中的编译器警告,但我实际上已经在生产代码中看到了以上所有内容!

在大多数情况下,这种编码由程序员和/或老板辩护.原因总是归结为这种反应:

  • 好吧,如果我们仔细检查会不会受伤?最好是安全而不是抱歉!
  • 这是防御性的编程,他们不是在大学教这个吗?!

不幸的是,我没有充分的理由不这样做,虽然我仍然认为这是非常糟糕的风格,这可能会产生不良后果.

我可以提出一些事实,这种风格最终会产生不良后果吗?

编辑:谢谢你提出摆脱这种风格的好建议.但我仍然感兴趣的原因是我可以向同事们提出解释并可能说服他们的原因,为什么这很糟糕,为了他们的最佳利益而不是偏执狂.

language-agnostic coding-style

21
推荐指数
6
解决办法
1331
查看次数

有没有IDA Pro替代品?

是否有任何反汇编程序提供与IDA Pro相媲美的功能集?

我对免费和商业产品都很感兴趣.请为每个产品使用一个答案,如果可能,请写一个简短的评论,如"易于使用","许多功能","仅支持PE文件",...

debugging disassembly

21
推荐指数
2
解决办法
9525
查看次数

如何使用VB6和MSXML打印XML源代码?

我几个月来一直在关注这个问题,而且我主要发现网站都在问同样的问题.

我的答案发现总是面向.NET或C++或参与XSLT.

vb6 msxml pretty-print

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

如果不使用返回值,Class.forName()的用途是什么?

我在示例应用程序中看到了使用商业JDBC驱动程序的这一行:

Class.forName("name.of.a.jcdb.driver")
Run Code Online (Sandbox Code Playgroud)

不使用返回值.

这条线的目的是什么?

java jdbc classloader

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

如何在Java程序中获得像Office 2007一样的"功能区"UI组件?

我想创建一个基于功能区的GUI.在Java接口方面,我几乎是一个新手,我使用了基本的Swing工具包,但就是这样.

任何人都可以指出我正确的方向,如何做到我的用户界面更灵活,特别是能够创建一个"功能区"?

java user-interface swing ribbon

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

YARD与RDoc不一样?

纠正我,如果我错了,是YARD不一样的RDoc

它不是基于RDoc而是基于完全重写?

所以,如果我使用YARD,我不必为RDoc而烦恼吗?

ruby rdoc yard

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

除命令行外,我在哪里可以设置用于运行Netbeans的JRE/JDK?

首先,我知道命令行参数,但我不想使用它,因为我想学习,而不仅仅是完成它,所以...

我在哪里可以设置用于运行Netbeans的JRE/JDK?

一点背景:

  1. 我安装了JDK 1.6_10(系统是Windows Vista Business 64)
  2. 我安装了Netbeans 6.5
  3. 几周后我卸载了Netbeans 6.5(我希望通过重新安装解决一些问题)
  4. 我还卸载了JDK 1.6_10并安装了1.6_11.
  5. 我重新安装了Netbeans 6.5
  6. 现在我无法启动Netbeans,因为它坚持使用旧的JDK.(尝试使用默认版本也不起作用.JAVA_HOME设置为1.6_11)

java netbeans netbeans6.5

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