这是一个众所周知的设计模式吗? 它叫什么名字?

我经常在代码中看到这个,但是当我谈到它时,我不知道这种’模式’的名称 我有一个带有2个参数的方法,它调用一个有3个参数的重载方法,并故意将第3个参数设置为空字符串。 public void DoWork(string name, string phoneNumber) { DoWork(name, phoneNumber, string.Empty) } private void DoWork(string name, string phoneNumber, string emailAddress) { //do the work } 我这样做的原因是不重复代码,并允许现有的调用者仍然调用只有2个参数的方法。 这是一种模式,它有一个名字吗?

java.lang.System.currentTimeMillis()替换方法

除了重新编译rt.jar有什么办法可以用我自己的一个替换currentTimeMillis()调用吗? 1#正确的方法是使用Clock对象和抽象时间。 我知道但我们将运行由无数开发人员开发的代码,这些开发人员尚未实现Clock或者已经实现了自己的实现。 2#使用像JMockit这样的模拟工具来模拟该类。 即使这只适用于Hotspot禁用-Xint并且我们使用下面的代码成功,但它不会“持久”在外部库上。 这意味着你必须在任何地方模拟它,因为代码不受我们的控制,是不可行的。 main()下的所有代码都返回0 milis(如示例所示),但new DateTime()将返回实际的系统millis。 @MockClass(realClass = System.class) public class SystemMock extends MockUp { // returns 1970-01-01 @Mock public static long currentTimeMillis() { return 0; } } 3#使用-Xbootclasspath/p (已编辑) 重启System 尽管可能,虽然您可以创建/更改方法,但有问题的方法被声明为public static native long currentTimeMillis(); 。 如果不深入研究Sun的专有和原生代码,你就不能改变它的声明,这将使这成为逆向工程和不稳定的方法。 所有最近的SUN JVM都崩溃,出现以下错误: EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000, pid=4668, tid=5736 4#使用自定义ClassLoader (评论中建议的新测试) 虽然使用-Djava.system.class.loader替换系统CL是微不足道的, -Djava.system.class.loader JVM实际上会使用默认的classLoader加载自定义classLoader,而System甚至不会通过自定义CL推送。 public […]

如何在JTable上执行不区分大小写的filter?

我正在制作一个带有文本字段的表格,您可以在其中输入单词来过滤表格。 它有效,但我想要做的是能够用输入的单词过滤它,但忽略单词的情况。 有没有办法在不创建自定义RowFilter情况下完成此操作? 您可以运行此SCCEE以查看我正在谈论的内容。 我想能够输入usa ,它将过滤USA 。 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.RowFilter; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; public class TestTableSortFilter extends JApplet { private String[] columnNames = {“Country”, “Capital”, “Population in Millions”, “Democracy”}; private Object[][] data = { {“USA”, […]

类扩展多个Java类?

我知道一个类可以实现多个接口,但是可以扩展多个类吗? 例如,我希望我的类扩展TransformGroup和我创建的类。 这在Java中可行吗? 两个语句class X extends TransformGroup extends Y和class X extends TransformGroup, Y接收错误。 如果不可能,为什么? TransformGroup扩展了Group但我想它也扩展了Node因为它inheritance了Node字段,并且可以在需要Node对象的地方传递。 此外,与Java中的所有类一样,它们扩展了Object类。 那么为什么不可能扩展到多个类? TransformGroupinheritance 那么,如果可能的话,做到这一点的正确方法是什么? 如果没有,为什么以及如何解决问题呢?

如何使用Jasper加载子报表资源?

使用Jasper,我使用资源来加载报告。 因此,要加载主报告,我使用类似的东西: InputStream is = getClass().getResourceAsStream(“/resources/report1.jrxml”); design = JRXmlLoader.load(is); 但是,如果report1.jrxml中有子报告,怎么说它在/resources/sub.jrxml ?

在Java中实现BinaryTree

我有这个代码用于BinaryTree创建和遍历 class Node { Integer data; Node left; Node right; Node() { data = null; left = null; right = null; } } class BinaryTree { Node head; Scanner input = new Scanner(System.in); BinaryTree() { head = null; } public void createNode(Node temp, Integer value) { Node newnode= new Node(); value = getData(); newnode.data = […]

GSON:如何从Json获得不区分大小写的元素?

当JSON对象包含传递给方法的jsonKey时,下面显示的代码很有效。 我想知道…如果有一种方法可以将值赋给一个不区分大小写的键表示? 例: public String getOutputEventDescription(JsonElement outputEvent) throws ParserException { return retrieveString(outputEvent, DESCRIPTION); } 无论是否将DESCRIPTION定义为“描述”,“描述”或“DeScRipTIOn”,都应该可以工作 protected String retrieveString(JsonElement e, String jsonKey) throws ParserException { JsonElement value = e.getAsJsonObject().get(jsonKey); if (value == null) { throw new ParserException(“Key not found: ” + jsonKey); } if (value.getAsString().trim().isEmpty()) { throw new ParserException(“Key is empty: ” + jsonKey); } return […]

尝试在Tomcat中将LDAP配置为JNDI资源

我有一个ldap服务器,我用它来validationtomcat Web应用程序中的用户。 我正在使用JNDIRealm,它在上下文文件中配置,这很好用。 我还需要在ldap中搜索用户信息。 我已经想出了如何使用“jndi方法”做到这一点,并且我通过使用哈希表创建自己的jndi上下文使其在tomcat之外正常工作。 但是,我不想在代码中配置jndi属性,而是想在Realm配置旁边的上下文文件中创建一个JNDI Rsource。 我想我会做这样的事情: 但是tomcat告诉我资源无法创建或者当我尝试用这样的东西初始化时: Context initctx = new InitialContext(); DirContext ctx = (DirContext) initctx.lookup(“java:comp/env/ldap”); Tomcat告诉我“无法创建资源实例”。 我还在我的web.xml文件中添加了正确的resource-ref,所以我不认为这是问题所在。 由于LDAP与JNDI方法一起使用,我假设它应该能够配置为资源,对吧? 我错过了什么?

Jar Embedded Resources NullPointerException

我最初是从Chillax开始的,在遇到如此多的问题接近截止日期之后,我回到了IDE我更熟悉的IDE,NetBeans,我将我的方法改为更基本的“小行星”型游戏: NBs zip文件: http ://ge.tt/4T5tBFT/v/0?c text:git clone git://gist.github.com/4248746.git 嵌入?: 在NetBeans中,我得到: Exception in thread “main” java.lang.NullPointerException at javax.swing.ImageIcon.(ImageIcon.java:205) at gayme.Craft.(Craft.java:27) at gayme.Board.(Board.java:54) at gayme.Gayme.(Gayme.java:9) at gayme.Gayme.main(Gayme.java:19) Java Result: 1 消息来源:(工艺26-34) public Craft() { ImageIcon ii = new ImageIcon(this.getClass().getResource(“craft.png”)); image = ii.getImage(); width = image.getWidth(null); height = image.getHeight(null); missiles = new ArrayList(); visible = true; x = […]

如何使用在Java Maps中设置为键

我有一个使用Set作为键类型的Map,如下所示: Map<Set, Val> map; 当我查询map.containsKey(myBunchOfThings)时,它返回false,我不明白为什么。 我可以遍历键集中的每个键,并validation是否有一个键(1)具有相同的hashCode,(2)对于myBunchOfThings是equals()。 System.out.println(map.containsKey(myBunchOfThings)); // false. for (Set k : map.keySet()) { if (k.hashCode() == myBunchOfThings.hashCode() && k.equals(myBunchOfThings) { System.out.println(“Fail at life.”); // it prints this. } } 我是否只是从根本上误解了containsKey的合约? 使用集合(或更一般地说,集合)作为地图的关键是否有秘密?