【发布时间】:2017-03-14 08:05:16
【问题描述】:
当值通过每个函数传递时,我应该能够以某种方式指定这样的链。
a::create -> a::processing -> a::updating -> a:uploading
在以下文章的上下文中,我想用一种方法将方法链接起来,在修改它时将结果传递给下一种方法。
https://dzone.com/articles/higher-order-functions
https://dzone.com/articles/functional-programming-java-8
我的演示将尝试展示我想要的最终结果。这将是单个参数/参数通过管道传递给每个方法(如 monad),并且应该更容易在链中指定任意数量的方法。
我一直在用其他语言做这件事,所以试图弄清楚如何用 java 做。
所有方法都将接收相同类型的参数,并且只有一个。
类值
public class Value {
public String progress = "";
}
课堂文章
public class Article {
public void create(Value value) {
value.progress += "creating ";
}
public void processing(Value value) {
value.progress += "processing ";
}
public void updating(Value value) {
value.progress += "updating ";
}
public void uploading(Value value) {
value.progress += "uploading ";
}
}
主类
public class Main {
public static void main(String[] args) {
Value v = new Value();
Article a = new Article();
a.create(v);
a.processing(v);
a.updating(v);
a.uploading(v);
}
}
【问题讨论】:
-
@JDC 请删除标签,答案只是理论上的,对我没有帮助,我需要一个工作示例
-
你可能应该把它带到软件工程中(如果你希望人们与你谈论它,也许可以少一点傲慢/脾气暴躁)。
-
不,不是那个意思,会在那里发帖
-
顺便说一下,小错字 value.progress = "updating ";应该是 value.progress +="updating";
-
我对你的问题有点困惑:你的代码中没有 monad,那么你真正想要编写的是什么?
标签: java monads method-chaining function-composition