目前我们使用的基本方法的实现Set<String> clients如下 -
if (clients.isEmpty()) {
throw new InvalidClientException();
}
for (String client : clients) {
if (!myMay.containsKey(client)) {
throw new InvalidClientException(client);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用lambda表达式转换它,如下所示 -
clients.stream().filter(client -> !myMay.containsKey(client) || clients.isEmpty())
.forEach(InvalidClientException::new);
Run Code Online (Sandbox Code Playgroud)
但这似乎不是以同样的方式工作,参数化构造函数在这里调用错过了吗?
该分离出的最初的问题,我有,假设这是通用就够了。在使用工件之前,如何检查它是否是多版本的jar。
Multi-Release: true
Run Code Online (Sandbox Code Playgroud)
我知道它可以手动寻找到MANIFEST.MF内META-INF的罐子上面的属性,但有一个命令行选项可用于此?
也许我错过了一些已经存在的其他名称,或者对非常明显的东西视而不见。但是我试图寻找这样的选项jar和
java工具,但也没有成功。
Java9引入了类似于OSGI和Maven Dependecies的强大模块性.
是否有maven插件能够构建检测maven依赖项的java 9依赖项?
例如,来自
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
....
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.3-jre</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
至
module my-module{
requires com.google.guava;
exports com.mycompany.app;
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这篇文章,但它没有那么有用 - 如何表达maven对java ee功能的依赖以转换到Java 9?
我正在尝试将下面的嵌套循环转换为流 Java 8。
newself2中的每个元素都是一个字符串列表——["1 2","3 4"]需要改为["1","2","3","4"]。
for (List<String> list : newself2) {
// cartesian = [["1 2","3 4"],["4 5","6 8"]...] list = ["1 2","3 4"]...
List<String> clearner = new ArrayList<String>();
for (String string : list) { //string = "1 3 4 5"
for (String stringElement : string.split(" ")) {
clearner.add(stringElement);
}
}
newself.add(clearner);
//[["1","2","3","4"],["4","5","6","8"]...]
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我所尝试的 -
newself2.streams().forEach(list -> list.foreach(y -> y.split(" ")))
Run Code Online (Sandbox Code Playgroud)
现在我确定如何将内部 for 循环中的拆分数组添加到新列表 for x?
任何帮助是极大的赞赏。
我切换到ubuntu 18.04.其中java 10默认为jvm
现在我使用javafx的应用程序无法再编译了.
cannot find symbol
[ERROR] symbol: class ObservableMap
Run Code Online (Sandbox Code Playgroud)
我尝试将参数添加到maven-compiler-plugin以加载javafx.graphics模块.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>--add-modules</arg>
<arg>javafx.graphics</arg>
</compilerArgs>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
结果:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] module not found: javafx.graphics
Run Code Online (Sandbox Code Playgroud)
当然,java --list-modules | grep fx什么都不返回.
我花了10多个小时试图解决这个问题.
TL:DR我应该怎么做用Java 10编译我的JavaFX模块?
最小项目:
/pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<name>java10fx</name>
<artifactId>java10fx</artifactId>
<version>0.0.1</version>
<groupId>my.test</groupId>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<release>10</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
/src/main/java/MyApp.java
import javafx.application.Application;
import javafx.stage.Stage;
public class MyApp extends Application{
public static void main(String[] args) {
launch(args);
} …Run Code Online (Sandbox Code Playgroud) 当我进行测试时,我遇到了流的问题.
代码如下:
public class HelloWorld {
public static void main(String []args) {
List<Integer> integers = Arrays.asList(-2, -5, -7, -16);
Integer integer = integers.stream().max(Math::max).orElse(0);
System.out.println(integer);
}
}
Run Code Online (Sandbox Code Playgroud)
返回值为-15,即列表中的最小数字.但是当我将max()更改为min()时,它会返回最大值.为什么?
计算MyDTO,Java 8中amountField的总和
private Double getSum(List<MyDTO> myDTOList) {
return myDTOList.stream().map(MyDTO::getAmount).reduce(0d, Double::sum);
}
Run Code Online (Sandbox Code Playgroud) 想象一下,我有一个元素列表.
List<Session> sessions;
想象一下,这里有一些元素.
我有另一个列表,它是上面列表的子列表.
List<Session> successSessions;
Run Code Online (Sandbox Code Playgroud)
顾名思义,后者是第一个列表中的成功会话集.因此剩下的列表是列表failedSessions.
failedSessions使用整个会话列表填充的有效方法是什么successSessions?
先感谢您.!!!
java 8中的两个列表对象的交集.有人能告诉我我做错了什么吗?
List<Student> originalStudent = new ArrayList<>();
List<Student> newStudent = new ArrayList<>();
List<Student> intersectListStudent = new LinkedList<>()
originalStudent.add(new Student("William", "Tyndale",1));
originalStudent.add(new Student("Jonathan", "Edwards",2));
originalStudent.add(new Student("Martin", "Luther"),3);
newStudent.add(new Student("Jonathan", "Edwards",2));
newStudent.add(new Student("James", "Tyndale",4));
newStudent.add(new Student("Roger", "Moore",5));
originalStudent.forEach(n ->
newStudent.stream()
.filter(db -> !n.getName().equals(db.getName()) &&
!n.getLastName().equals(db.getLastName()))
.forEach(student-> intersectListStudent .add(student)));
Run Code Online (Sandbox Code Playgroud)