【java 8内置的四大核心函数式接口】教程文章相关的互联网学习教程文章

java函数式编程的形式

java中没有真正的函数变量; 一、所有的函数(拉姆达)表达式,都被解释为functional interface @FunctionalInterface interface GreetingService { void sayMessage(String message); 二、通过返回容器类型实现串联; prices.stream() .filter(price -> price.compareTo(BigDecimal.valueOf(20)) > 0) .map(price -> price.multiply(BigDecimal.valueOf(0.9))) .reduce(BigDecimal.ZERO, BigDecimal::add); ...

java-如何使包含return语句的代码块成为函数?【代码】

如果我有一个相似的代码块,在许多地方使用了具有不同功能的代码块,但其中包含return语句,那么如何重组它以将该代码块变成一个函数呢?例如,假设我有一个对象Mailman,其中包含一个有效性代码(失败的成功/失败/原因),还可能包含一个给被调用方的软件包. 在一种情况下,邮递员可能只是抓住他持有的物品,然后将其交给被呼叫者:Mailman mailman = requestMailForPerson(person);switch(mailman.getStatus()){case SUCCESS:Mail mail = (...

java-Spring:对具有字段和构造函数注入的类进行单元测试【代码】

我有下面的课程设置.class Base {@Autowiredprivate BaseService service; //No getters & setters.... }@Component class Child extends Base {private final SomeOtherService otherService;@Autowired Child(SomeOtherService otherService) {this.otherService = otherService;} }我正在为Child类编写单元测试.如果我使用@InjectMocks,则otherService结果为null.如果使用测试设置中的Child类的构造函数,则Base类中的字段显示...

java-集合的“ max”函数的这两个通用签名之间是否有区别【代码】

这两个签名之间是否有实际区别:public static <T extends Comparable<? super T>> T max(Collection<T> c) 和public static <T extends Comparable<T>> T max(Collection<? extends T> c) 我无法想到这两个用例不可互换的用例. 那么同时拥有两者的原因是什么?超级T和?在Java Collections的标准max()方法中扩展T:public static <T extends Comparable<? super T>> T max(Collection<? extends T> coll)编辑:这个问题不是关于&l...

带有“ this”关键字的Java Copy构造函数【代码】

这个问题已经在这里有了答案: > How do you make a deep copy of an object in Java? 17个> Building a copy constructor in Java 1个我对Java有一个相当普遍的问题.我想知道是否有一种简单的方法可以在Java中重新创建此C代码:class A {public:int first;int second;A(const A& other) {*this = other;}... }因此,基本...

java-在将可变引用设置为引用新创建的对象之后,线程是否仍会感知构造函数的影响?【代码】

我读了here–When thread A writes to a volatile variable and subsequently thread Breads that same variable, the values of all variables that werevisible to A prior to writing to the volatile variable become visibleto B after reading the volatile variable. So from a memory visibilityperspective, writing a volatile variable is like exiting asynchronized block and reading a volatile variable is like e...

java-在函数中放置参数的正确方法【代码】

我有大约30个参数的巨大表格,我认为做我通常做的事情不是一个好主意. 该表格将被序列化,并将所有参数通过ajax传递给spring控制器. 我通常这样做:@RequestMapping(value = "/save-state", method = RequestMethod.POST) public @ResponseBody void deleteEnvironment(@RequestParam("environmentName") String environmentName, @RequestParam("imageTag") String imageTag) {//code }但是如果我有30个参数,则函数中将有一个庞大的...

java-重构方法/构造函数参数以在IntelliJ中插入整个对象【代码】

我想重构代码,以便整个对象输入作为参数而不是其部分input.getI(),input.getJ()传递. 我可以通过“提取参数”操作轻松地完成相反的操作,但是如何在IntelliJ中跨代码库这样重构它呢?public static void main(String[] args) {Foo input = new Foo(0, 1);//What I have:new Bar(input.getI(), input.getJ());print(input.getI(), input.getJ());//What I want: //new Bar(input);//print(input); }public static void print(int i, ...

使用具有(模拟的)可选/默认参数的函数编写Javadoc【代码】

我有一些C代码的Java包装器,其中通过手动重载相关方法来模拟默认参数. [示例在Does Java support default parameter values?中.]在一种情况下,C fn具有3个可选参数,因此我不得不用Java编写8个方法. 现在,我想为上述方法编写JavaDocs.有什么办法可以避免将相同的文本写8次?除了冗长之外,这还将是维护的噩梦… EDit:这是一个玩具示例,说明了方法的签名:void foo(int i, String s, double d); void foo(int i, String s); void foo...

如何创建Java函数列表?【代码】

我想从Java函数创建一个列表.但是,当我尝试将功能添加到功能列表时,它说:Non-static variable cannot be referenced from a static context我不知道哪种方法是静态的.有什么主意吗 我的主班:public void createFunctionList() {List<Function> functions = new ArrayList<>();functions.add(Product::getInfo); }我的产品类别:public class Product {public Info getInfo() {return info;} }解决方法:可以将Product :: getInfo...

java-将委托的构造函数与其他构造函数中的try-with-resources惯用语一起使用【代码】

我的Foo类有两种构造方法:public Foo(Bar bar)public Foo(Baz baz)可以尝试从酒吧获得Baz,并尝试使用类似资源这样的资源try (Baz baz = bar.expensiveFunction()){// code here }我想做的是在Foo(Bar bar)构造函数中,基本上是这样写的public Foo(Bar bar) {try (Baz baz = bar.expensiveFunction()){this(baz);} }但这是不允许的,因为this(b)不在第一行.有谁知道我如何用Java实现这一目标?当然,我可以使用初始化函数,但我不希望这...

Java Simple Factory具有使用不同参数的构造函数【代码】

我有两种在应用程序中保存数据的方式:保存到数据库和保存到文件.因为我不希望使用客户端代码来处理对象的构造,所以我创建了一个类(据我所知)是带有工厂方法的简单工厂.代码如下:public static DataPersister createDataPersister(Boolean saveToDb, Session session, String filename) {if (saveToDb) {return new DatabaseDataPersister(session);} else {return new FileDataPersister(filename);} }使用此设置,客户端代码不必...

java-如何使用已经存在的构造函数?【代码】

我正在为带Firebase的儿童构建一个简单的应用程序,并且不断出现此错误:Android Firebase Database exception: not define a no-argument constructor我有一个活动课,另外两个辅助课是HomeActivities和OutsideActivities.这是我的班级代码:public class Activities {private String type;private int count;public Activities() { }public Activities(String type, int count) {this.type = type;this.count = count;}public Stri...

Java中是否存在具有固定哈希长度的字符串的现成双向哈希函数?【代码】

我需要对字符串使用哈希和增强(双向)功能.哈希值应为固定长度(5-6个符号). 例:String hashed = MagicHashLib.hash("long string"); //hash is hd45dk as an example String enhashedLongString = MagicHashLib.enhash(hash);Java中是否已经存在已实现的算法?还是我应该自己写?解决方法:无论编程语言如何,我都不认为存在此类哈希. 以下是hash function wikipedia page的报价:A hash function is any function that can be used ...

java-WorkManager无法找到所需的零参数构造函数【代码】

我正在使用android.arch.work:work-runtime依赖项中的WorkManager 1.0.0-alpha02每隔一分钟查询一次网页(此示例不包含查询代码,因为它无关紧要). 当我像这样使用WorkManager时:WorkManager.getInstance().enqueue(new PeriodicWorkRequest.Builder(MessageWorker.class,1,TimeUnit.MINUTES).setConstraints(new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()).build());private class MessageWor...