java-8相关内容
我是Java 8的新手。我还是不知道API的深度,但我做了一个小的非正式的基准来比较新的Streams API的性能和好的旧集合。 测试包括过滤 Integer 的列表,对于每个偶数,计算平方根和存储它在结果列表 双。 是代码: public static void main(String [] args){ //计算均方根数字从1到N int min = 1; in
..
假设我有一个方法返回一个只读视图到成员列表: class Team { private List players = new ArrayList(); // ... public List getPlayers() { return Collections.unmodifiableList(players); } }
..
如果我有一个 List> ,我可以把它变成 List 解决方案 可以使用 flatMap 将内部列表(在将它们转换为Streams之后)变成单个Stream,然后将结果收集到列表中: List> list = ... List flat = list.stream() .fla
..
在Java 8中,如何通过检查每个对象的属性的清晰度,使用 Stream API过滤集合? 例如,我有一个 Person 对象的列表,我要删除具有相同名称的人 persons.stream()。distinct(); 将使用 Person的默认等式检查 object,所以我需要像 persons.stream()。distinct(p - > p.get
..
如何使用Java 8编写Java 8,使用闭包支持一个方法,它接受 作为参数,并返回一个函数作为值? 解决方案 在Java Lambda API中,主类是 java.util.function.Function 。 您可以使用此接口的引用 这是一个非常简单的例子,它可能会帮助你you: public class HigherOrder { public stat
..
我发现这个页面说明Java 8对Juno的支持是deffered,但我找不到更多的信息,多久人们可以预见到能够在Eclipse中编写第一次关闭,并获得生产的东西。 有人有洞察力我们还要等多久? Java7的功能在3.7很快,这就是为什么这个任务被推迟的奇怪。 任何评论,想法? 解决方案 Java 8支持被推迟的一个主要原因是Java 8将可用后Eclipse Juno发布。 E
..
我可以创建一个递归闭包: static IntUnaryOperator fibo; fibo = (i) - > i 但是,这只是一个例子。相反,如果我创建了一个延迟/无限列表/流,递归可以以相当不错的方式使用:没有成员必须被计算多次。 我想到了以下结构: IntStream fi; fi = IntStream.iterate(0,i
..
使用新的Java lambdas和功能接口的概念,将这些功能接口作为方法是否可能? interface Func {void execute(int i); } void call(Func f) { f(1); // instead of f.execute(1); } 我发现了很多关于实际lambda表达式语法的信息,关于此。 解决方案 您的命题
..
因为,我们知道,Groovy语法接受闭包。 今天,Java 8在其语法闭包中增加了。 但是,当我在groovy文件中编写java8闭包时,我得到如下所示的错误: Person.findAll()。stream()。filter(e-> e.age> 20) 我们得到这个错误: org.codehaus.groovy.control.MultipleComp
..
给定 doSomething(Function foo){println foo(2)} Groovy: doSomething({it * it} as Function) Java: doSomething((x) - & 在Java Lambda表达式中,没有办法以默认名称引用lambda表达式的参数。在Groovy中有类似的线条,我认为它是“it”。 在Java中,La
..
我对内部类和lambda表达有些困惑,我试图问一个问题,但随后出现了另一个疑问,并且可能更好地发布另一个问题,而不是对前一个问题进行评论。 直截了当:我知道(谢谢Jon& / a>)这样的东西不会编译 public class Main { public static void main [] args){ 一个= new One(); F f = new F(){// 1
..
前一段时间,Oracle决定将Closures添加到Java 8将是一个好主意。 引用 打开问题 / strong>来自 javac.info : 方法句柄可以用于函数类型吗? 如何使用这种方法并不明显。一个问题是,方法句柄reify类型参数,但在某种方式干扰函数子类型。 我们可以摆脱显式声明“throws”type parameters? 每当声明的bound是被检查的异常
..
我听到lambdas即将到达您附近的Java(J8)。我发现一个例子,他们将在一些博客上看起来像: SoccerService soccerService =(teamA,teamB) - > { SoccerResult result = null; if(teamA == teamB){ result = SoccerResult.DRAW; } else if(team
..
我很困惑。我认为Java8将从石器时代出现,并开始支持lambdas / closures。但是当我尝试: public static void main(String [] args){ int number = 5; ObjectCallback callback =() - > { return(number = number + 1); }; 对象result
..
我无法理解方法参考的语法,其中有两个参数 a& b ,并且引用是 a 在 b 上的方法。 例如 我理解how Arrays.sort(personArray,comparatorators: compareByName); 等同于 Arrays.sort(personArray,(o1,o2) - > comparatorators.compareByName(o1,o2 )
..
在Java 8之前,lambda功能可以通过使用匿名内部类来实现。例如: interface Lambda { void doStuff } // ... public void doWithCallback(Lambda callback){ // ... callback.doStuff (); } // ... doWithCallback
..
我对于针对同一个匿名类创建java8 lambda实例的性能感到好奇。 (在win32 java build 1.8.0-ea-b106上执行的测量)。我创建了一个非常简单的例子,并测量如果java提出一些优化 new 运算符,同时创建lambda表达式: static final int MEASURES = 1000000; static interface ICallback {
..
我有以下类。 public class ZonedDateTimeToInstant { public static void main(final String [] args) throws NoSuchMethodException { assert ChronoZonedDateTime.class.isAssignableFrom(ZonedDateTime.cla
..
在我看来,这样的switch语句会有很大的意义,但它给出一个编译错误: public void m(Class c){ switch(c){ case SubClassOfC1.class:// do stuff;打破; case SubClassOfC2.class:// do stuff;打破; } } 但是,类不支持打开。是什么原因? 我不想解
..
对于Java 8,只支持 TLSv1 的服务器无法从分区操作系统安全套接字连接 版本 java版本“1.8.0_45” Java环境(build 1.8.0_45-b14) Java HotSpot™64位服务器虚拟机(构建25.45-b02,混合模式) 源 import javax.net.ssl。 SSLSession; import jav
..