java-8相关内容
invokedynamic 指令用于帮助VM在运行时确定方法引用,而不是在编译时硬连接它。 这对于动态语言很有用,其中确切的方法和参数类型在运行时才知道。但Java lambda不是这种情况。它们被转换为具有明确定义的参数的静态方法。并且可以使用 invokestatic 调用此方法。 那么的需要是什么? lambdas的invokedynamic ,特别是当性能下降时? 解决方
..
我在JavaFX中的定义位置添加一行时遇到问题。该行必须是一条恒定的行,如下所示:如何向JavaFX图表添加值标记? 我的问题是,我的布局定义有点复杂。看看: 重要的部分是关于顶端。我希望在y = 60行上有这条线。 RadioBoxes的左侧部分是VBox。带有(Scatter-)图表的部分是StackPane(因为我希望它填充宽度的其余部分)。 StackPane内部是图表和组。该
..
我正在尝试解析标准输入并提取与特定模式匹配的每个字符串,计算每个匹配的出现次数,并按字母顺序打印结果。这个问题似乎是Streams API的一个很好的匹配,但是我找不到从Matcher创建匹配流的简洁方法。 我解决了这个问题通过在匹配上实现迭代器并将其包装到Stream中的问题,但结果不是很易读。如何在不引入其他类的情况下创建正则表达式匹配流? public class Patter
..
当我注意到一些奇怪的东西时,我正在学习如何使用java 8流。 Arrays.stream()除浮点数组之外的所有方法都有: Arrays.stream(int []):IntStream Arrays.stream(long []):LongStream Arrays.stream(double []):DoubleStream 同样,有流int,double等实现但不是浮
..
为什么接口允许在Java 8中使用 main 方法? 如下面的代码中所述工作正常并正确生成输出。 public interface Temp { public static void main(String args []){ System.out.println(“你好”); } } 目前它表现得像一个类,我已执行使用main方法接口。 为什么
..
示例程序: 公共最终类CollectorTest { private CollectorTest() { } private static BinaryOperator< T> nope() { return(t,u) - > {throw new UnsupportedOperationException(“nope”); }; } pub
..
因此,Java 8引入了方法引用,文档描述了这四种类型。 / p> 我的问题是两种实例类型之间有什么区别? 引用特定对象的实例方法。 引用特定类型的任意对象的实例方法。 两者都是指引用,但有什么显着不同?用于解决它们的类型推断是不同的吗?重要的是(在他们的例子中)一个是闭包而另一个是lambda?是否与方法的参数数量有关? 解决方案 1) myString :: cha
..
我的问题与该主题中的明确使用LambdaMetafactory 密切相关,提供了一些非常好的例子来使用LambdaMetafactory来访问类的静态方法;但是,我想知道访问现有bean实例的非静态字段的等效代码是什么。似乎很难找到一个例子,我执行的每一次尝试都以非工作代码结束。 这是bean代码: class SimpleBean { private Object obj =“
..
我有以下集合类型: Map>地图; 我想创建每个 map.size()的唯一组合来自每个Key的集合中的单个值。 例如,假设地图如下所示: A,{a1,a2,a3,...,an} B,{b1,b2,b3,...,bn } C,{c1,c2,c3,...,cn} 结果我想获
..
前一段时间,我已经关于以递归方式计算斐波纳契数的Java 8函数方法的博客,带有 ConcurrentHashMap 缓存和新的,有用的 computeIfAbsent()方法: import java.util.Map; import java.util.concurrent.ConcurrentHashMap; 公共类测试{ 静态地图 cache = new C
..
我有这个清单(清单 ): [“a”,“b”,null,“c”,null,“d”,“e”] 我想要这样的事情: [[“a”,“b”],[ “c”],[“d”,“e”]] 换句话说我想要使用 null 值作为分隔符将我的列表拆分为子列表,以获取列表列表(列表> )。我在寻找Java 8解决方案。我尝试
..
Enum类是Serializable,因此使用枚举序列化对象没有问题。另一种情况是class具有java.util.Optional类的字段。在这种情况下抛出以下异常:java.io.NotSerializableException:java.util.Optional 如何处理这些类,如何序列化它们?是否可以将此类对象发送到远程EJB或通过RMI? 这是示例: import
..
我有一个BigDecimals集合(在这个例子中,一个 LinkedList ),我想一起添加。是否有可能为此使用流? 我注意到 Stream 类有几种方法 Stream :: mapToInt Stream :: mapToDouble Stream :: mapToLong 每个方法都有一个方便的 sum()方法。但是,正如我们所知, float 和 d
..
我一直在使用新的可选类型在Java 8中,我遇到了一个似乎是功能上不支持的常见操作:“orElseOptional” 考虑以下模式: 可选 resultFromServiceA = serviceA(args); if(resultFromServiceA.isPresent)返回结果; else { 可选 resultFromServiceB = servic
..
我想了解 可选 .orElse() 和 可选 .orElseGet() 方法。 orElse()方法的描述是“如果存在则返回值,否则返回其他。“ 然而, orElseGet()方法的描述是”返回值如果存在,否则调用other并返回该调用的结果。“ orElseGet()方法采用供应商功能接口,基本上不接受任何参数并返回 T 。 在哪种情况下你需要使用 orE
..
是否有一种简单的方法可以将 LocalDate (在Java 8中引入)转换为 java.util.Date 宾语? 通过'简单',我的意思是比这更简单: Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault())。toInstant()); 这对我来说有点尴尬。 由于我们只对
..
我正在尝试使用Java 8 流 以查找 LinkedList 中的元素。不过,我想保证过滤条件只有一个匹配。 请输入以下代码: public static void main(String [] args){ LinkedList users = new LinkedList(); users.add(新用户(1,“User1”)); users.ad
..
我想知道为什么 Iterable 界面不提供 stream()和 parallelStream()方法。考虑以下类: public class Hand实现Iterable { 私人最终名单 list = new ArrayList(); 私人最终产能; // ... ... @Override public Iterator i
..
我很难找到一种方法来跳过流的开头的一些元素,具体取决于谓词。 这样的事情: dropWhile(n - > n
..
我试图将lambda分配给Object类型: Object f =() - > {}; 它给我错误说: 此表达式的目标类型必须是功能接口 为什么会发生这种情况,以及如何做到这一点? 解决方案 这是不可能的。根据错误消息 Object 不是一个功能接口,这是一个具有单个公共方法的接口,因此您需要使用引用类型,例如 Runnable
..