我使用在Junit测试用例中运行的嵌入式服务器.有时这些服务器需要一个工作目录(例如Apache Directory服务器).
Junit 4.7中的新@Rule可以处理这些情况.TemporaryFolder-Rule可以创建临时目录.可以为服务器创建自定义ExternalResource-Rule.但是如果我想将结果从一个规则传递到另一个规则,我该如何处理:
import static org.junit.Assert.assertEquals;
import java.io.*;
import org.junit.*;
import org.junit.rules.*;
public class FolderRuleOrderingTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Rule
public MyNumberServer server = new MyNumberServer(folder);
@Test
public void testMyNumberServer() throws IOException {
server.storeNumber(10);
assertEquals(10, server.getNumber());
}
/** Simple server that can store one number */
private static class MyNumberServer extends ExternalResource {
private TemporaryFolder folder;
/** The actual datafile where the number are stored */
private File dataFile;
public MyNumberServer(TemporaryFolder folder) {
this.folder = …Run Code Online (Sandbox Code Playgroud) 我想创建一个包含某种文本元素(JLabel/JTextArea等)的对话框,它是多行的并包装单词.我希望对话框具有固定宽度,但根据文本的大小调整高度.我有这个代码:
import static javax.swing.GroupLayout.DEFAULT_SIZE;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class TextSizeProblem extends JFrame {
public TextSizeProblem() {
String dummyString = "";
for (int i = 0; i < 100; i++) {
dummyString += " word" + i; //Create a long text
}
JLabel text = new JLabel();
text.setText("<html>" + dummyString + "</html>");
JButton packMeButton = new JButton("pack");
packMeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
pack();
}
});
GroupLayout layout = new GroupLayout(this.getContentPane());
getContentPane().setLayout(layout);
layout.setVerticalGroup(layout.createParallelGroup()
.addComponent(packMeButton)
.addComponent(text)
); …Run Code Online (Sandbox Code Playgroud) 在Mysql中有一个比较运算符,它是一个空保险箱:<=>.我在创建这样的预处理语句时在我的Java程序中使用它:
String routerAddress = getSomeValue();
String sql = "SELECT * FROM ROUTERS WHERE ROUTER_ADDRESS <=> ? ";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, routerAddress);
Run Code Online (Sandbox Code Playgroud)
现在我想切换到H2数据库.如何在纯SQL中编写<=>运算符(例如使用IS NULL和IS NOT NULL)?我想只使用stmt.setString操作一次.可以多次编写列名称.
相关问题是SQL中的Get null == null.但是这个答案要求搜索值写入2次(即我的PreparedStatement中有2个问号)!?
参考:http: //dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_equal-to
是否只有包含属性的类(如ac结构)的名称或昵称?与此示例中的DialogParameters类似:
public class MyDialog extends JDialog {
public static class DialogParameters {
public String dialogTitle;
public String helpId;
}
public MyDialog(DialogParameters parameters) {
...
}
}
Run Code Online (Sandbox Code Playgroud)