我有这段代码
Coverage mainCoverage = illus.getLifes().stream()
.filter(Life::isIsmain)
.findFirst()
.orElseThrow(() -> new ServiceInvalidAgurmentGeneraliException(env.getProperty("MSG_002")))
.getCoverages()
.stream() // <==may cause null here if list coverage is null
.filter(Coverage::isMainplan)
.findFirst()
.orElseThrow(() -> new ServiceInvalidAgurmentGeneraliException(env.getProperty("MSG_002")));
Run Code Online (Sandbox Code Playgroud)
这完全可以正常工作,但我认为它有点乱,并没有涵盖所有null pointer exception可能的(见评论).
我尝试将此代码重构为
Coverage mainCoverage1 = illus.getLifes().stream()
.filter(Life::isIsmain)
.map(Life::getCoverages)
.filter(Coverage::isMainplan) //<== cannot filter from list coverage to one main coverage
...
Run Code Online (Sandbox Code Playgroud)
在我将生命映射到覆盖范围后,它似乎不再是一个覆盖列表.所以问题是如何将第一部分重构为null安全并且可能缩短它?
我想制作当前页面的 pdf,以便用户可以打印出来,但每个页面都是动态的,所以我需要一种文本到 pdf 生成器才能使其工作。
它是一个 ionic2 应用程序,就像一个食谱页面,所以你可以点击一个按钮,它只是从文本中生成一个 pdf。
你们知道我怎么能做到这一点吗?
我创建了这样的函数
public <T extends ClientCoporate> void myFunction(List<T> clients){
T client = new T(); // issue
....
}
Run Code Online (Sandbox Code Playgroud)
IDE错误 Cannot instantiate the type T
简单的问题,如何ClientCoporate在这里创建任何类的新实例?我试着搜索但没有希望,如果你能找到任何重复的问题,请随时给我一面旗帜.谢谢.
我有这段代码
BigDecimal a = new BigDecimal("8000000");
BigDecimal b = new BigDecimal("80e5");
System.out.println("a equal b? " +a.compareTo(b));
BigDecimal resultA = a.divide(new BigDecimal("1000"), BigDecimal.ROUND_UP);
BigDecimal resultB = b.divide(new BigDecimal("1000"), BigDecimal.ROUND_UP);
System.out.println(resultA.compareTo(resultB));
System.out.println(resultA);
System.out.println(resultB);
Run Code Online (Sandbox Code Playgroud)
结果
a equal b? 0
-1
8000
1E+5
Run Code Online (Sandbox Code Playgroud)
我不明白吗?为什么a 8000000/1000和round up不同80e5/1000和舍入?和Java在表示第一次a compare来b是0(等于?)
我创建了一个ArrayList,并尝试在myAnalyzer上调用getAverage方法并指定myClassroom作为参数(参数).但它没有解决它给出以下错误,
GradeAnalyzer.java:40: error: method getAverage in class GradeAnalyzer cannot be applied to given types;
myAnalyzer.getAverage(myClassroom);
^
required: no arguments
found: ArrayList<Integer>
reason: actual and formal argument lists differ in length
1 error
Run Code Online (Sandbox Code Playgroud)
码:
import java.util.ArrayList;
public class GradeAnalyzer{
//constructor
public GradeAnalyzer(){
}
//method get average created returns int
public int getAverage(){
ArrayList<Integer> grades = new ArrayList<Integer>();
if(grades.size() < 1){
System.out.println("Arraylist is empty");
return 0;
}else{
int sum = 0;
for(Integer grade :grades){
sum = grade + sum;
}
int average …Run Code Online (Sandbox Code Playgroud) java ×4
angular ×1
bigdecimal ×1
generator ×1
html ×1
ionic2 ×1
java-8 ×1
java-stream ×1
pdf ×1