Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

2
如何将InputStream转换为虚拟文件
我有一个方法,期望输入变量之一是java.io.File类型,但是我得到的只是InputStream。另外,我无法更改方法的签名。 如何将InputStream转换为File类型,而无需实际将文件写入文件系统?
81 java  file  inputstream 

6
如何立即重新运行失败的JUnit测试?
有没有办法让JUnit规则或类似的东西通过尝试再次运行它,使每一次失败的测试都有第二次机会。 背景:我有大量用JUnit编写的Selenium2-WebDriver测试集。由于时间安排非常激进(单击后仅等待很短的时间),某些测试(100个测试中的1个,总是一个不同的测试)可能会失败,因为服务器有时响应速度会变慢。但是我不能将等待期定得足够长,因为它肯定足够长,因为这样测试将永远进行下去。)-因此,对于这种用例,我认为可接受的测试是绿色的,即使它需要一秒钟尝试。 当然,最好是三分之二(如果失败的测试重复3次,并且如果其中两个测试是正确的,则将它们视为正确),但这将是未来的改进。
81 java  testing  junit 

2
CascadeType.REFRESH实际做什么?
什么是CascadeType.REFRESH真正做? 它的定义是 刷新实体时,此字段中保存的所有实体也会刷新 但这实际上意味着什么?有人可以给我一个简单的例子吗?
81 java  jpa 

18
在迭代期间将元素添加到集合中
在迭代集合时是否可以向集合中添加元素? 更具体地说,我想遍历一个集合,如果一个元素满足特定条件,我想向集合中添加一些其他元素,并确保也对这些添加的元素进行遍历。(我意识到这可能会导致循环终止,但是我很确定不会发生这种情况。) Sun的Java教程建议不可能:“请注意,这Iterator.remove是在迭代过程中修改集合的唯一安全方法;如果在迭代过程中对基础集合进行了其他任何修改,则行为未指定。” 因此,如果我不能使用迭代器做我想做的事情,那么你建议我做些什么?
81 java  iterator 

6
什么时候应该选择SAX而不是StAX?
与构建像DOM解析器之类的树结构的解析器一样,流式XML解析器(例如SAX和StAX)更快,内存效率更高。SAX是推式解析器,这意味着它是观察者模式(也称为侦听器模式)的实例。SAX首先出现,然后是StAX-拉式解析器,这意味着它基本上像迭代器一样工作。 您可以找到在任何地方都偏爱StAX而不是SAX的原因,但是通常可以归结为:“更易于使用”。 在JAXP上的Java教程中,StAX被模糊地呈现为DOM和SAX之间的中间部分:“它比SAX更容易,并且比DOM更有效”。但是,我从来没有发现StAX比SAX慢或低内存效率的任何线索。 这一切使我感到奇怪:是否有任何理由选择SAX而不是StAX?
81 java  xml  xml-parsing  sax  stax 

15
通过Java SCP
通过Java编程语言执行scp传输的最佳方法是什么?看来我可以通过JSSE,JSch或充气城堡Java库执行此操作。这些解决方案似乎都没有一个简单的答案。
81 java  scp  bouncycastle  jsse  jsch 

2
什么是java:comp / env?
什么意思java:comp/env? 看起来像什么: Context envContext = (Context)initContext.lookup("java:comp/env"); 怎么办? 我了解查询如下: (DataSource)envContext.lookup("jdbc/MyDatasource") MyDatasource在context.xml或中查找名称,web.xml以获取数据库的URL。是这样吗 ?!! 但是前者看起来是什么?
81 java  jakarta-ee  jndi 

9
打印异常的堆栈跟踪
如何将异常的堆栈跟踪信息打印到stderr以外的流上?我发现的一种方法是使用getStackTrace()并将整个列表打印到流中。
81 java  exception 


22
打印ArrayList
我有一个包含地址对象的ArrayList。 我如何打印此ArrayList的值,这意味着我要打印Array的内容,在本例中为数字。 我只能使用以下代码来打印出阵列的实际内存地址: for(int i = 0; i < houseAddress.size(); i++) { System.out.print(houseAddress.get(i)); }

4
泽西岛客户端:如何添加列表作为查询参数
我正在为具有List作为查询参数的GET服务创建Jersey客户。根据文档,可以将List作为查询参数(此信息也位于@QueryParam javadoc中),将其检出: 通常,方法参数的Java类型可以: 是原始类型; 有一个接受单个String参数的构造函数; 有一个名为valueOf或fromString的静态方法,该方法接受单个String参数(例如,请参见Integer.valueOf(String)和java.util.UUID.fromString(String));要么 是List,Set或SortedSet,其中T满足上面的2或3。结果集合为只读。 有时参数可能包含多个相同名称的值。如果是这种情况,则可以使用4)中的类型来获取所有值。 但是,我不知道如何使用Jersey客户端添加List查询参数。 我了解替代解决方案是: 使用POST而不是GET; 将List转换为JSON字符串,并将其传递给服务。 第一个不好,因为该服务的正确HTTP动词是GET。这是一个数据检索操作。 如果您不能帮我,第二个将是我的选择。:) 我也在开发服务,因此我可以根据需要进行更改。 谢谢! 更新资料 客户端代码(使用json) Client client = Client.create(); WebResource webResource = client.resource(uri.toString()); SearchWrapper sw = new SearchWrapper(termo, pagina, ordenacao, hits, SEARCH_VIEW, navegadores); MultivaluedMap<String, String> params = new MultivaluedMapImpl(); params.add("user", user.toUpperCase()); params.add("searchWrapperAsJSON", (new Gson()).toJson(sw)); ClientResponse clientResponse = …
81 java  rest  jersey 

6
用Java创建InetAddress对象
我试图将由IP地址或名称指定的地址(都用String(即localhost或127.0.0.1))转换为InetAdress对象。没有构造函数,而是返回InetAddress的静态方法。因此,如果我获得了主机名,这不是问题,但是如果我获得了IP号怎么办?有一种方法可以获取byte [],但是我不确定这对我有什么帮助。所有其他方法均获取主机名。 InetAddress API文档
81 java  ip 

6
您可以同时运行2个完全独立的Eclipse实例吗?
我目前正在将Eclipse用于Java和Python(以及PyDev)。我经常发现我打开了一个包含大量文件的Java项目,然后由于某种原因我不得不切换到Python项目。 我想按原样离开我的Java项目,我不只是想在同一个地方打开大量Python文件,因为那样的话我一次打开的东西太多了。 有什么办法可以让我的Java项目保持原样,并打开一个全新的Eclipse会话?(使用浏览器的某种方式)
81 java  eclipse  pydev 


7
具有模拟用户输入的JUnit测试
我正在尝试为需要用户输入的方法创建一些JUnit测试。被测方法看起来类似于以下方法: public static int testUserInput() { Scanner keyboard = new Scanner(System.in); System.out.println("Give a number between 1 and 10"); int input = keyboard.nextInt(); while (input < 1 || input > 10) { System.out.println("Wrong number, try again."); input = keyboard.nextInt(); } return input; } 有没有一种方法可以自动将程序传递给int而不是我或其他人在JUnit测试方法中手动执行此操作?像模拟用户输入一样? 提前致谢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.