Tag: java

何时不使用Java中的static关键字?

什么时候在方法签名中使用Java中的static关键字被认为是不好的做法? 如果一个方法根据一些参数执行一个函数,并且不需要访问非静态的字段,那么你是否总是希望这些types的方法是静态的?

seleniumWebDriver和DropDown框

如果我想select一个下拉框的选项,有几种方法可以做到这一点。 我一直使用: driver.findElement(By.id("selection")).sendKeys("Germany"); 但是这并不是每次都有效。 有时select另一个选项。 所以我search了一下,发现这段代码每次都有效: WebElement select = driver.findElement(By.id("selection")); List<WebElement> options = select.findElements(By.tagName("option")); for (WebElement option : options) { if("Germany".equals(option.getText())) option.click(); } 但是,这真的很慢。 如果我有一个很长的名单,其中有很多项目,它真的需要太多的时间。 所以我的问题是,是否有一个解决scheme,每次都有效,速度很快?

Java尝试/捕获/最终的最佳实践,同时获取/closures资源

在做一个学校项目时,我写了下面的代码: FileOutputStream fos; ObjectOutputStream oos; try { fos = new FileOutputStream(file); oos = new ObjectOutputStream(fos); oos.writeObject(shapes); } catch (FileNotFoundException ex) { // complain to user } catch (IOException ex) { // notify user } finally { if (oos != null) oos.close(); if (fos != null) fos.close(); } 问题是Netbeans告诉我resource.close()行抛出一个IOException ,因此必须被捕获或声明。 它也抱怨oos和fos可能还没有初始化(尽pipe没有检查)。 这似乎有点奇怪,看到整个问题是如何停止IOException 。 我的膝盖修复是这样做的: } finally […]

如何防止apache http客户端遵循redirect

我使用apache http客户端连接到远程服务器。 远程服务器发送一个redirect,我想实现我的客户端不是自动redirect,以便我可以提取propper头,并做任何我想要的目标。 我正在寻找一个简单的工作代码示例 (复制粘贴) ,停止自动redirect以下行为 。 我发现阻止HttpClient 4遵循redirect ,但似乎我太愚蠢与HttpClient 4.0(GA)实施它,

为什么只能在初始化程序中使用数组常量?

可能重复: 数组常量只能用于初始化程序错误 我正在学习数组,并且通过这种在一行中声明和初始化数组的简捷方法。 例如, int[] a = {1, 2, 3, 4, 5}; 但是当我试图做下面的代码,我得到这个编译器错误说:“数组常量只能用于初始化”。 int[] a; a = {1, 2, 3, 4}; 为什么这样?

在有现有的类时,接口如何取代多重inheritance的需要

首先…对不起这个职位。 我知道有很多post在stackoverflow讨论多重inheritance。 但是我已经知道Java不支持多重inheritance,而且我知道使用接口应该是另一种select。 但我不明白,看到我的困境: 我必须对用Java编写的非常大而复杂的工具进行更改。 在这个工具中,有一个由许多不同类对象和一个链接的成员层次结构构成的数据结构。 无论如何… 我有一个类Tagged有多个方法,并根据对象的类返回一个对象标记。 它需要成员和静态variables。 另一个称为XMLElement类允许链接对象,最后生成一个XML文件。 我也需要这里的成员和静态variables。 最后,我有这么多的数据类,几乎所有的应该扩展XMLElement和一些Tagged 。 好吧,这是行不通的,因为只能扩展一个类。 我经常读到,所有使用Java的东西都可以,并且不需要多重inheritance。 我相信,但我不明白接口应该如何取代inheritance。 把所有数据类中的真实实现放在一起是没有意义的,因为它每次都是一样的,但是这对接口是必须的(我认为)。 我没有看到我怎么可以改变我的inheritance类之一到一个接口。 我在这里有variables,他们必须在那里。 我真的不明白,所以请有人解释我如何处理这个?

从javax.xml.transform.Transformer的漂亮打印输出只有标准的Java API(缩进和Doctype定位)

使用以下简单的代码: package test; import java.io.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; public class TestOutputKeys { public static void main(String[] args) throws TransformerException { // Instantiate transformer input Source xmlInput = new StreamSource(new StringReader( "<!– Document comment –><aaa><bbb/><ccc/></aaa>")); StreamResult xmlOutput = new StreamResult(new StringWriter()); // Configure transformer Transformer transformer = TransformerFactory.newInstance() .newTransformer(); // An identity transformer transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "testing.dtd"); […]

JPA地图收集的枚举

在JPA中有没有办法在Entity类中映射一个Enums集合? 或者唯一的解决办法是将Enum与另一个域类打包并用它来映射集合? @Entity public class Person { public enum InterestsEnum {Books, Sport, etc… } //@??? Collection<InterestsEnum> interests; } 我正在使用Hibernate JPA实现,但当然会更喜欢实现不可知的解决scheme。

泽西岛:打印实际的请求

我如何查看Jersey生成并发送到服务器的实际请求? 我有一个特定的请求的问题和运行Web服务器的人要求查看完整的请求(与标题等)。

C#中的命名空间和Java中的包之间的区别

C#中的名称空间和Java中的包之间有什么区别(在使用方面)?