我在Maven pom.xml中包含了这些依赖项:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我试图在module-info.java中添加这种依赖,如下所示:
module io.github.wildcraft.restclient {
requires httpcore; // no compilation problem
requires httpclient; // no compilation problem
requires commons-io; // shows compilation error
}
Run Code Online (Sandbox Code Playgroud)
对于commons-io,我收到编译错误.我怎样才能做到这一点?
我有一个要求:
String command = "click"; // this can have value such as clear, getLocation, getSize, getTagName etc.
WebDriver driver = new ChromeDriver(options); //creating a webdriver object
driver.findElement(By.id("id1")).click(); //Here I want "click" method should be called dynamically as per what I have stored in variable `command`.
Run Code Online (Sandbox Code Playgroud)
那么,是否有可能像:
driver.findElement(By.id("id1")).<something to call click()>
Run Code Online (Sandbox Code Playgroud)
我已经看过Java中的Reflection,但根据我的要求,这看起来很复杂.任何指针都会有所帮助!
任何人都可以指向官方Java文档,该文档描述了Stream将为每个元素调用每个"非干扰和无状态"中间操作的次数.
例如:
Arrays.asList("1", "2", "3", "4").stream()
.filter(s -> check(s))
.forEach(s -> System.out.println(s));
public boolean check(Object o) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
以上目前将调用check方法4次.
是否有可能在JDK的当前版本或未来版本中,该check方法的执行次数多于或少于从List或任何其他标准Java API创建的流中的元素数量?
现在,对于我拥有的每个模块,我需要明确指定要导出的包.例如:
module core {
exports cc.blynk.server.core;
exports cc.blynk.server.core.protocol.handlers.decoders;
exports cc.blynk.server.core.protocol.handlers.encoders;
}
Run Code Online (Sandbox Code Playgroud)
但是,它不是很方便.我想做那样的事情:
module core {
exports cc.blynk.server.core.*;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?这种限制来自哪里?
从Map.java的文档-
在
Map.of()和Map.ofEntries()静态工厂方法提供了一种方便的方法来创建不可改变的地图.
但是当我已经可以使用重载方法时 ......
Map.of("k1","v1","k2","v2","k3","v3"...);
Run Code Online (Sandbox Code Playgroud)
... Map.ofEntries的用途是什么呢?
返回包含从给定条目中提取的键和值的不可变映射,并且条目本身不存储在映射中.
我想用JShell运行整个文件,如:
$ jshell my-jshell-skript.java
Run Code Online (Sandbox Code Playgroud)
例如,在哪里我的内容my-jshell-skript.java是40 + 2;.
或者可选的可执行文件:
#!/usr/bin/jshell
40 + 2
Run Code Online (Sandbox Code Playgroud)
现在这可能吗?还是我仍然需要采用Java-Main-Class的旧方法?
在Windows上,我仍然没有解决方案:
C:\JDKs\jdk9.0.0.0_x64\bin>type foo.jsh
1 + 1
C:\JDKs\jdk9.0.0.0_x64\bin>jshell.exe foo.jsh
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell> /exit
| Goodbye
C:\JDKs\jdk9.0.0.0_x64\bin>
Run Code Online (Sandbox Code Playgroud)
JShell开始完全忽略我的文件.这是一个错误吗?
事实证明这是我的foo的内容.似乎1 + 1只能"在运行中"工作,而不是从文件中读取:
C:\JDKs\jdk9.0.0.0_x64\bin>type foo.jsh
System.out.println("foo");
C:\JDKs\jdk9.0.0.0_x64\bin>jshell.exe foo.jsh
foo
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell> /exit
| Goodbye
C:\JDKs\jdk9.0.0.0_x64\bin>
Run Code Online (Sandbox Code Playgroud) 我在这里看了一个Optional类的教程 - https://www.geeksforgeeks.org/java-8-optional-class/,它有以下内容
String[] words = new String[10];
Optional<String> checkNull = Optional.ofNullable(words[5]);
if (checkNull.isPresent()) {
String word = words[5].toLowerCase();
System.out.print(word);
} else{
System.out.println("word is null");
}
Run Code Online (Sandbox Code Playgroud)
我试图通过ifPresent检查Optionalas 来减少行数
Optional.ofNullable(words[5]).ifPresent(a -> System.out.println(a.toLowerCase()))
Run Code Online (Sandbox Code Playgroud)
但是无法进一步获得其他部分
Optional.ofNullable(words[5]).ifPresent(a -> System.out.println(a.toLowerCase())).orElse();// doesn't work```
Run Code Online (Sandbox Code Playgroud)
有办法吗?
我在Mac OS上安装了JDK 9的发行版.
jshell工作得很好,Jigsaw模块支持工作,但没有jlink:
? java --version
java 9
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
Run Code Online (Sandbox Code Playgroud)
这是空的:
find /System/Library/Frameworks/JavaVM.framework/Versions/Current/ -iname jlink\*
Run Code Online (Sandbox Code Playgroud)
供参考:
? ls -l $(which java)
lrwxr-xr-x 1 root wheel 74 Nov 7 2016 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Java 9 maven项目中的孵化器中的HttpClient.我没有得到任何编译问题.该项目成功建立.但是当我尝试运行Main类时,它给了我以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: jdk/incubator/http/HttpClient
at java9.http_client.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: jdk.incubator.http.HttpClient
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)....
Run Code Online (Sandbox Code Playgroud)
我的代码只是一个模块信息文件和一个只调用google.com并试图读取响应的Main类:
module-info.java
module java9.http_client {
requires jdk.incubator.httpclient;
}
Run Code Online (Sandbox Code Playgroud)
Main.java
public final class Main {
public static void main(String[] args) {
try {
HttpClient client = HttpClient.newHttpClient();
URI httpURI = new URI("http://www.google.com/");
HttpRequest request = HttpRequest.newBuilder(httpURI).GET().build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandler.asString());
String responseBody = response.body();
int responseStatusCode = response.statusCode();
System.out.println(responseBody + "\n" + responseStatusCode);
} catch (URISyntaxException | IOException | …Run Code Online (Sandbox Code Playgroud) 我正在使用Java11.学习一种新的方法Predicate.not,我发现我目前的代码只找到猫科:
List<String> animals = List.of("cat", "leopard", "dog", "lion", "horse");
Predicate<String> cats = a -> !a.equals("dog") && !a.equals("horse");
Set<String> filterCat = animals.stream().filter(cats).collect(Collectors.toSet());
System.out.println(filterCat);
Run Code Online (Sandbox Code Playgroud)
输出是:
豹,猫,狮子
现在我正在尝试使用新方法,输出结果不正确.我该如何纠正?我做错了什么?
我后来的代码:
Predicate<String> updatedCatFilter = Predicate.not(a -> a.equals("dog") && a.equals("horse"));
Set<String> catFamily = animals.stream().filter(updatedCatFilter).collect(Collectors.toSet());
System.out.println(filterCat);
Run Code Online (Sandbox Code Playgroud)
但是现在输出我的所有列表.
马,豹,猫,狗,狮子
java ×10
java-9 ×6
java-module ×3
java-8 ×2
java-platform-module-system ×2
hashmap ×1
java-11 ×1
java-stream ×1
jlink ×1
jshell ×1
macos ×1
maven ×1
optional ×1
predicate ×1
selenium ×1