小编SCd*_*CdF的帖子

你如何断言在JUnit 4测试中抛出某个异常?

如何以惯用方式使用JUnit4来测试某些代码是否会抛出异常?

虽然我当然可以这样做:

@Test
public void testFooThrowsIndexOutOfBoundsException() {
  boolean thrown = false;

  try {
    foo.doStuff();
  } catch (IndexOutOfBoundsException e) {
    thrown = true;
  }

  assertTrue(thrown);
}
Run Code Online (Sandbox Code Playgroud)

我记得有一个注释或一个Assert.xyz或者其他东西,对于这些类型的情况来说,远不如KUndgy 和JUnit的精神.

java junit assert exception junit4

1915
推荐指数
24
解决办法
120万
查看次数

如何将输出重定向到文件和标准输出

在bash中,调用foo将在stdout上显示该命令的任何输出.

调用foo > output会将该命令的任何输出重定向到指定的文件(在本例中为'output').

有没有办法将输出重定向到文件并将其显示在stdout上?

linux io bash file-io stdout

898
推荐指数
9
解决办法
57万
查看次数

在Hibernate中重新附加分离对象的正确方法是什么?

我有一种情况需要将分离的对象重新附加到休眠会话,尽管会话中已经存在相同标识的对象,这将导致错误.

现在,我可以做两件事之一.

  1. getHibernateTemplate().update( obj ) 当且仅当对象在hibernate会话中不存在时,这才有效.抛出异常,说明当我稍后需要时,会话中已存在具有给定标识符的对象.

  2. getHibernateTemplate().merge( obj ) 当且仅当hibernate会话中存在对象时,此方法才有效.如果我使用它,当我需要稍后在会话中的对象时抛出异常.

鉴于这两种情况,我如何一般地将会话附加到对象?我不想使用异常来控制这个问题解决方案的流程,因为必须有一个更优雅的解决方案......

java session spring hibernate detach

179
推荐指数
8
解决办法
17万
查看次数

PermGen实际上代表什么?

我知道PermGen是什么,它用于什么,它失败的原因,如何增加它等等.

我不知道的是PermGen实际上代表什么.永久......根......什么?

有谁知道PermGen实际上代表什么?

java permgen

119
推荐指数
5
解决办法
16万
查看次数

读取和显示Java .class版本的工具

你们有没有人知道一个工具会搜索.class文件然后显示他们的编译版本?

我知道你可以在十六进制编辑器中单独查看它们,但我有很多类文件要查看(我的巨型应用程序中的某些东西由于某种原因编译为Java6).

jvm-bytecode

114
推荐指数
6
解决办法
6万
查看次数

在Java变量和方法名称中使用下划线

即使在今天,我经常在Java变量和方法中看到下划线,例如成员变量(如"m_count"或"_count").据我记忆,在这些情况下使用下划线被Sun称为坏风格.

他们应该使用的唯一地方是常量(比如"public final static int IS_OKAY = 1;"),因为常量应该都是大写而不是驼峰.这里,下划线应该使代码更具可读性.

你认为在Java中使用下划线是不好的风格吗?如果是这样(或不是),为什么?

java naming-conventions

81
推荐指数
9
解决办法
10万
查看次数

如何阻止堆栈跟踪在日志中截断

在Java日志中很多次我会得到类似的东西:

Caused by: java.sql.BatchUpdateException: failed batch
    at org.hsqldb.jdbc.jdbcStatement.executeBatch(jdbcStatement.java:1102)
    at org.hsqldb.jdbc.jdbcPreparedStatement.executeBatch(jdbcPreparedStatement.java:514)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
    ... 113 more
Run Code Online (Sandbox Code Playgroud)

有谁知道如何显示完整的堆栈跟踪(即显示其他113行)?


Throwable 的JavaDocs(适用于Java 7)对发生的事情有一个非常详细的解释.

java exception stack-trace

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

为什么枚举不可以进行?

在Java 5及更高版本中,你有foreach循环,它可以在任何实现的东西上神奇地工作Iterable:

for (Object o : list) {
  doStuff(o);
}
Run Code Online (Sandbox Code Playgroud)

但是,Enumerable仍然没有实现Iterable,这意味着迭代Enumeration你必须执行以下操作:

for(; e.hasMoreElements() ;) {
  doStuff(e.nextElement());
}
Run Code Online (Sandbox Code Playgroud)

有谁知道有没有理由Enumeration仍然没有实现Iterable

编辑:作为澄清,我不是在谈论枚举的语言概念,我在谈论Java API中称为" 枚举 " 的特定于Java的类.

java enumeration iterable

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

javascript创建给定大小的空数组

在javascript中如何创建给定大小的空数组

Psuedo代码:

X = 3;
createarray(myarray, X, "");
Run Code Online (Sandbox Code Playgroud)

输出:

   myarray = ["","",""]
Run Code Online (Sandbox Code Playgroud)

javascript

59
推荐指数
7
解决办法
8万
查看次数

如何保持VMWare VM的时钟同步?

我注意到我们的VMWare VM通常有不正确的时间.无论我多少次重置他们继续停顿的时间.

有没有其他人注意到这一点?其他人如何保持VM时间同步?

编辑:这些是CLI linux VMs btw ..

vmware

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