小编Chr*_*way的帖子

JUnit:在被测试的类中启用断言

我已经assert在JUnit测试套件中没有失败的Java 语句中进行了几次,因为在JUnit的JVM实例中没有启用断言.要清楚,这些是实现中的"黑盒子"断言(检查不变量等),而不是JUnit测试本身定义的断言.当然,我想在测试套件中捕获任何这样的断言失败.

显而易见的解决方案是要非常小心使用-enableassertions,每当我运行JUnit,但我更喜欢一个更强大的解决方案.一种替代方法是将以下测试添加到每个测试类:

  @Test(expected=AssertionError.class)
  public void testAssertionsEnabled() {
    assert(false);
  }
Run Code Online (Sandbox Code Playgroud)

有没有更自动的方法来实现这一目标?JUnit的系统范围配置选项?我可以在setUp()方法中添加动态调用吗?

java junit assertions

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

CharBuffer与char []

有没有理由在下面选择a CharBuffer到a char[]:

CharBuffer buf = CharBuffer.allocate(DEFAULT_BUFFER_SIZE);
while( in.read(buf) >= 0 ) {
  out.append( buf.flip() );
  buf.clear();
}
Run Code Online (Sandbox Code Playgroud)

char[] buf = new char[DEFAULT_BUFFER_SIZE];
int n;
while( (n = in.read(buf)) >= 0 ) {
  out.write( buf, 0, n );
}
Run Code Online (Sandbox Code Playgroud)

(ina Readerouta 在哪里Writer)?

java io buffer

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

C++矢量文字,或类似的东西

我正在编写一些针对C++ API的代码,它采用向量向量的向量,并且编写如下代码的代码变得乏味:

vector<string> vs1;
vs1.push_back("x");
vs1.push_back("y");
...
vector<string> vs2;
...
vector<vector<string> > vvs1;
vvs1.push_back(vs1);
vvs1.push_back(vs2);
...
vector<vector<string> > vvs2;
...
vector<vector<vector<string> > > vvvs;
vvvs.push_back(vvs1);
vvvs.push_back(vvs2);
...
Run Code Online (Sandbox Code Playgroud)

C++是否有矢量文字语法?即,类似于:

vector<vector<vector<string>>> vvvs = 
    { { {"x","y", ... }, ... }, ... }
Run Code Online (Sandbox Code Playgroud)

有没有非内置的方法来实现这一目标?

c++ vector literals

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

用Lisp以外的语言编写Emacs扩展

我想要一个现有的应用程序(用OCaml编写)并为它创建一个Emacs"接口"(例如,Emacs GDB模式).我更愿意这样做而不需要编写大量的Lisp代码.在MVC术语中,我希望View是Emacs,但是模型和控制器仍然(主要)保留OCaml.

有人知道用Lisp以外的语言编写Emacs扩展的方法吗?这可以采用以某种其他语言绑定到Emacs扩展API的形式(例如,使OCaml成为一流的Emacs扩展语言)或Emacs交互模式,例如,扩展具有可以写入的管道Emacs Lisp表达式并读出结果值.

lisp emacs ocaml

25
推荐指数
2
解决办法
4791
查看次数

如何使用java.util.List而不是java.awt.List将Eclipse配置为自动完成?

可能重复:
Eclipse:在自动填充类名时排除特定包

这是一个小问题,但它让我感到疯狂,当我输入ListEclipse时,它总是问我是不是我的意思,java.util.List或者java.awt.List当我从未使用过java.awt.List.在我自己的项目中还有其他类似的名称冲突案例和更深奥的标准库.有没有办法配置Eclipse以假设我的意思是java.util.List除非我不顾一切地指定其他方式?

java eclipse autocomplete

24
推荐指数
0
解决办法
1937
查看次数

在LaTeX中垂直放置数学符号

我正在使用符号\otimes作为一元运算符,它的垂直对齐对我来说似乎不对.它希望略低于基线.例如,如果我定义\newcommand{\myop}{\ensuremath \otimes},则$\myop I$变为

基线以下的操作员http://i48.tinypic.com/iqajo5.jpg

$F_{\myop I}$成为

操作员在下标http://i46.tinypic.com/mimgrr.png中未对齐

我尝试\raisebox用来解决这个问题,例如,

\newcommand{\myop}{\ensuremath \raisebox{1pt}{$\otimes$}}
Run Code Online (Sandbox Code Playgroud)

这个修复$\myop I$:

操作员靠近基线http://i48.tinypic.com/2dspbhc.png

\raisebox似乎对下标不敏感.操作员保持相同的大小,而周围的一切都缩小:

运算符太大了下标http://i47.tinypic.com/jku4p5.png

我认为,问题是\raisebox创建自己的LR框,它不会继承周围数学环境中的设置.有\raisebox"尊重数学" 的版本吗?

latex

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

SVN存储库中的"Phantom"目录

我以某种方式设法让SVN存储库陷入糟糕的状态.我已经移动了一个目录,现在我无法在新位置提交它.

svn status目前而言,目录是未知的(目录的名称是type).

$ svn status
?      type

当我尝试添加目录时,服务器说它已经存在.

$ svn add type
svn: warning: 'type' is already under version control

如果我尝试更新目录,它会再次消失.

$ svn update type
svn: '.' is not under version control

如果我尝试提交它,服务器会抱怨它的旧父目录不再存在.

$ svn commit type -m "Moving type"
svn: Commit failed (details follow):
svn: '/prior/trunk/src/nyu/prior/cvc3/theorem_prover/expression' path not found

为了增加神秘感,目录的内容被标记为已修改.

$ svn status type
A  +   type
M  +   type/IntegerType.java
M  +   type/BooleanType.java
M  +   type/Type.java
M  +   type/RationalRangeType.java
M  +   type/RationalType.java
M  + …

svn

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

当命令尝试以shell模式打开编辑器时,打开Emacs缓冲区

我喜欢使用Emacs的shell模式,但它有一些不足之处.其中之一是,当shell命令试图调用编辑器时,打开新缓冲区并不够智能.例如,将环境变量VISUAL设置为vimI ,我将从中获取以下内容svn propedit:

$ svn propedit svn:externals . 
"svn-prop.tmp" 2L, 149C[1;1H
~                                                                               [4;1H~                                                                               [5;1H~                                                                               [6;1H~                                                                               [7;1H~            
...

(从表示中可能很难说,但这是一个可怕的,丑陋的混乱.)

随着VISUAL设置为"emacs -nw",我得到

$ svn propedit svn:externals .
emacs: Terminal type "dumb" is not powerful enough to run Emacs.
It lacks the ability to position the cursor.
If that is not the actual type of terminal you have,
use the Bourne shell command `TERM=... export TERM' (C-shell:
`setenv TERM ...') to specify the …

unix emacs shell

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

Java:将char []转换为CharSequence

将a转换char[]为a 的最直接和/或最有效的方法是CharSequence什么?

java string

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

在Java中实现动态插件

我想在Java应用程序中实现动态插件功能.理想的情况是:

  • 应用程序将Plugin使用类似的方法定义接口getCapabilities().
  • 插件将是一个pluginX.jar包含PluginXImpl实现Plugin(可能还有其他一些)的类的JAR .
  • 用户将放入pluginX.jar特殊目录或设置指向它的配置参数.用户不一定必须包含pluginX.jar在他们的类路径中.
  • 应用程序会找到PluginXImpl(可能通过JAR清单,可能通过反射)并将其添加到注册表中.
  • 客户端可以PluginXImpl例如通过调用类似的方法来获取实例getPluginWithCapabilities("X").用户不一定必须知道插件的名称.

我有一种感觉,我应该能够用peaberry做到这一点,但我无法理解文档.我花了一些时间学习Guice,所以我的首选答案不是"使用Spring Dynamic Modules".

任何人都可以给我一个简单的想法,如何使用Guice/peaberry,OSGi,或只是简单的Java?

java plugins osgi guice peaberry

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

标签 统计

java ×5

emacs ×2

assertions ×1

autocomplete ×1

buffer ×1

c++ ×1

eclipse ×1

guice ×1

io ×1

junit ×1

latex ×1

lisp ×1

literals ×1

ocaml ×1

osgi ×1

peaberry ×1

plugins ×1

shell ×1

string ×1

svn ×1

unix ×1

vector ×1