所以这是代码:
public int foo(InputStream in) {
int counter = 0;
Scanner scanner = new Scanner(in);
while(scanner.hasNextLine()) {
counter++;
scanner.nextLine();
}
return counter;
}
Run Code Online (Sandbox Code Playgroud)
通常,我会将FileInputStream传递给此方法,但是我希望能够在不访问物理文件的情况下对其进行测试。
我应该模拟File对象吗?如何实施
@Test
public void shouldReturnThree(){
}
Run Code Online (Sandbox Code Playgroud) 我想根据过滤器收集物品.但如果未找到匹配项,则不应初始化结果列表.我更喜欢null而不是空列表.
List<String> match = list
.stream()
.filter(item -> item.getProperty == "match")
.collect(Collectors.toList());
if (match != null && !match.isEmpty()) {
//handle seldom match
}
Run Code Online (Sandbox Code Playgroud)
问题:大多数时候我没有匹配,导致空集合.这意味着即使我不需要,列表也会在大多数情况下实例化.
我正在使用 Windows 10,我想在我的计算机上插入一个设备(它创建了一个名为“Ethernet 12”和描述为“foobar”的新网络接口),并且能够使用 Java 设置该接口的 IP 地址。使用此链接:使用 JAVA 更改计算机 IP 地址,我可以配置接口的 IP 地址。我的问题是我无法在 Java 中检索设备创建的接口的名称。从我找到的文档中,我做了以下事情:
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while(networkInterfaces.hasMoreElements())
{
NetworkInterface networkInterface = networkInterfaces.nextElement();
if (networkInterface.isUp())
System.out.println("Display name: " + networkInterface.getDisplayName() + "\nName: " + networkInterface.getName() + "\nAddress: " + networkInterface.getInterfaceAddresses().get(0));
}
Run Code Online (Sandbox Code Playgroud)
并得到以下结果:
Display name: foobar
Name: eth15
Address 111.116.15.4
Run Code Online (Sandbox Code Playgroud)
我希望名称是“以太网 12”而不是“eth15”,这似乎没有任何意义。我注意到所有其他接口(wifi、以太网等)都一样。由于我需要我的接口(以太网 12)的真实名称来使用 netsh(而不是像“eth15”这样的随机地址)配置 IP 地址,我被卡住了......
是否有理由将“eth15”作为我的界面名称?
谢谢
根据在线描述,以下是 Java 中使用的与 Sizes 相关联的属性:
使用 -Xmx 指定最大堆大小
使用 -Xms 指定初始 Java 堆大小
使用 -Xss 设置 Java 线程堆栈大小
mx 和 ms 是什么意思?mx 是指最大值还是 ms 是什么意思?
java ×4
heap-memory ×1
heap-size ×1
inputstream ×1
java-8 ×1
java-stream ×1
jvm ×1
unit-testing ×1