草庐IT

generic-lambda

全部标签

java - Lambda 表达式与 lambdaj

在我去年做的一个Java集成项目中,我发现了lambdaj,并立即相信它能够让我更快地生成更具可读性的代码。我记得当时也读过有关lambda表达式即将发布到1.8的信息,并且认为我找到了一个已经为我提供了所有这些功能的插件。现在我正在重新审视lambda表达式,发现我可能对lambdaj的目的和范围有误。在我现在看来,lambdaj并没有真正提供lambda表达式,而是一种旨在取代集合中重复循环的领域特定语言。它的DSL语法看起来类似于匿名函数,并提供一些相同的功能,例如闭包和柯里化(Currying)函数,但最终它受到了JLS的限制。我现在想知道1.8的lambda表达式可以为Jav

java - "LinkedList is not generic"错误Java

我在尝试创建链表时遇到错误:Exceptioninthread"main"java.lang.Error:Unresolvedcompilationproblem:ThetypeLinkedListisnotgeneric;itcannotbeparameterizedwithargumentsatLinkedList.main(LinkedList.java:7)有人知道如何解决这个错误吗?这是程序:importjava.util.*;publicclassLinkedList{publicstaticvoidmain(String[]args){Listlist=newLinked

Java IntelliJ 13.1.4 "Lambda expressions are not supported at this language level."

当我尝试使用表达式value->value时,我收到一条错误消息,提示Lambda不受支持。我目前正在使用支持Lambda的1.8JDK,但我仍然遇到错误。我的猜测是它是IntelliJ13.1.4,但我并不肯定。publicstaticvoidgrades(){finalListgrade=newArrayList();intgradelistnumber=1;intinputedgrade=0;while(inputedgrade!=-1){System.out.println("EnterGradeforstudent"+gradelistnumber+"(1-50):");in

java - 部署 Java AWS Lambda 的最佳方式是什么?

有两种“部署”JavaLambda的方法:创建一个包含所有(未打包的)依赖项的“胖”jar,例如通过使用maven-shade-plugin创建一个包含我的代码的zip文件和一个包含所有依赖项的lib目录作为jar文件由于执行我们简单的Lambda的环境需要很长时间才能“启动”(20-30秒),我想知道这两种方法是否比另一种方法“更快”或者可以进一步加速? 最佳答案 我发现FATjar是占用空间小于MB限制的lambda的最佳方法。如果超过MB限制,请将库添加到lambda的lib文件夹并读入。对于库中的jars,我发现lambda

Java 泛型 : how to get a generic type from a method?

虽然我的问题是关于Java泛型的,但我已经放了一些与JPA相关的代码来向您展示真实的上下文。我正在使用JPA2.0和基于CriteriaAPI的查询。我所有的查询都遵循相同的模式(比较简单的属性;不需要路径导航),所以我试图编写一个通用类来处理JPA,同时将业务逻辑保留在单独的类中。我的目标是有一个方法,给定一个实体类型和一个存储定义标准的对(字段名称->期望值)的映射,返回一个具有某些实体字段值的bean(或bean集合).我所有的实体都实现了Persistible接口(interface),而我所有的传输对象都继承自QueryBean.我认为那些类与问题无关,因此我跳过了它们的代码

java - Spring MVC : Generic DAO and Service classes

我正在使用SpringMVC编写Web。我使用GenericDAO编写了所有DAO。现在我想重写我的服务类。如何编写“通用服务”?有我的DAO:/*#################################DAO################################*/packagenet.example.com.dao;importjava.util.List;publicinterfaceGenericDao{publicTfindById(intid);publicListfindAll();publicvoidupdate(Tentity);publicvoi

java - Apache Spark Lambda 表达式 - 序列化问题

我尝试在spark任务中使用lambda表达式,它抛出“java.lang.IllegalArgumentException:无效的lambda反序列化”异常。当代码类似于"transform(pRDD->pRDD.map(t->t._2))"时会抛出此异常。代码片段如下。JavaPairDStreamaggregate=pairRDD.reduceByKey((x,y)->x+y);JavaDStreamcon=aggregate.transform((Function,JavaRDD>)pRDD->pRDD.map((Function,Integer>)t->t._2));Java

java - 无法使用通用 lambda 解析重载方法

这段代码:publicstaticvoidf(String[]args){}publicstaticvoidf(Integer[]args){}publicstaticvoidmain(String[]args){f(Stream.of("xxx").toArray(i->newString[i]));}使用jdk8u45编译成功但jdk8u60打印以下错误:Error:(17,9)java:referencetofisambiguousbothmethodf(java.lang.String[])intype_infer.Testandmethodf(java.lang.Intege

java - 为什么 lambda 类型推断失败,但等效方法引用成功?

我正在使用lambda在下面的Java程序中实现功能接口(interface)。当lambda作为参数传递给泛型方法时,编译器会标记“不兼容类型”错误,因为它推断lambda实现了Func接口(interface),该接口(interface)让编译器将lambda参数(“thing”)解释为当lambda尝试将其传递给需要Round类型参数的方法(testRound)时,它属于Shape类型。这个错误对我来说很有意义。但等效方法引用不会引发错误消息。我一直误以为lambda和可以替换该lambda的方法引用是可以互换的。在这里,事实并非如此。publicclassMain{publi

java - 使用泛型和 lambda 重载方法时调用方法不明确

我注意到使用泛型和lambda重载方法时有一种奇怪的行为。这个类工作正常:publicvoidtest(Tt){}publicvoidtest(Suppliert){}publicvoidtest(){test("test");test(()->"test");}没有模棱两可的方法调用。但是,将其更改为此会使第二个调用不明确:publicvoidtest(Classc,Tt){}publicvoidtest(Classc,Suppliert){}publicvoidtest(){test(String.class,"test");test(String.class,()->"test"