Java 双功能<&燃气轮机;使用枚举
我使用双函数来发送函数 我现在得到的是:Java 双功能<&燃气轮机;使用枚举,java,java-8,Java,Java 8,我使用双函数来发送函数 我现在得到的是: public class Animal { public static String cat( final String field, final Object value ) { return "(CAT:" + field + toString(value) + ")"; } public static String dog( final String
public class Animal {
public static String cat(
final String field,
final Object value
) {
return "(CAT:" + field + toString(value) + ")";
}
public static String dog(
final String field,
final Object value
) {
return "(DOG:" + field + toString(value) + ")";
}
}
public String getAnimal(
final String animalFieldName,
final BiFunction<String, Object, String> function,
final Object animelieldValue
) {
return function.apply(animalFieldName, animalFieldValue);
}
我想要的是双函数是一个枚举,
因此getAnimal()的签名将是:
有什么建议吗?我希望有代码示例。不太确定您想要什么,但这似乎符合要求吗
enum Animal implements BiFunction<String, Object, String> {
CAT,
DOG,
BEAR {
@Override
public String apply(String s, Object o) {
return "This is a Bear!!!";
}
};
@Override
public String apply(String s, Object o) {
return "(" + name() + ":" + s + o.toString() + ")";
}
}
public void test() {
for (Animal animal : Animal.values()) {
System.out.println(animal.apply("hello", "Hello"));
}
}
枚举动物实现双功能{
猫,
狗,
忍受{
@凌驾
公共字符串应用(字符串s,对象o){
return“这是一只熊!!!”;
}
};
@凌驾
公共字符串应用(字符串s,对象o){
返回“(“+name()+”:“+s+o.toString()+”)”;
}
}
公开无效测试(){
对于(动物:Animal.values()){
System.out.println(animal.apply(“hello”,“hello”));
}
}
不太确定您想要什么,但这似乎符合要求吗
enum Animal implements BiFunction<String, Object, String> {
CAT,
DOG,
BEAR {
@Override
public String apply(String s, Object o) {
return "This is a Bear!!!";
}
};
@Override
public String apply(String s, Object o) {
return "(" + name() + ":" + s + o.toString() + ")";
}
}
public void test() {
for (Animal animal : Animal.values()) {
System.out.println(animal.apply("hello", "Hello"));
}
}
枚举动物实现双功能{
猫,
狗,
忍受{
@凌驾
公共字符串应用(字符串s,对象o){
return“这是一只熊!!!”;
}
};
@凌驾
公共字符串应用(字符串s,对象o){
返回“(“+name()+”:“+s+o.toString()+”)”;
}
}
公开无效测试(){
对于(动物:Animal.values()){
System.out.println(animal.apply(“hello”,“hello”));
}
}
是@OldCurmudgeon答案的变体,包含更多lambda:
enum Animal implements BiFunction<String, Object, String> {
CAT,
DOG,
BEAR((s, o) -> "This is a Bear!!!");
private final BiFunction<String, Object, String> function;
private Animal(final BiFunction<String, Object, String> function) {
this.function = function;
}
private Animal() {
super((s, o) -> "(" + name() + ":" + s + o.toString() + ")");
}
}
public void test() {
Animal
.values()
.stream(animal -> animal.apply("hello", "Hello"))
.forEach(System.out::println)
;
}
枚举动物实现双功能{
猫,
狗,
熊((s,o)->“这是一只熊!!!”;
私有最终双函数;
私人动物(最终双功能){
这个函数=函数;
}
私人动物(){
超级((s,o)->“(“+name()+”:“+s+o.toString()+”);
}
}
公开无效测试(){
动物
.values()
.stream(animal->animal.apply(“hello”、“hello”))
.forEach(System.out::println)
;
}
是@OldCurmudgeon答案的变体,包含更多lambda:
enum Animal implements BiFunction<String, Object, String> {
CAT,
DOG,
BEAR((s, o) -> "This is a Bear!!!");
private final BiFunction<String, Object, String> function;
private Animal(final BiFunction<String, Object, String> function) {
this.function = function;
}
private Animal() {
super((s, o) -> "(" + name() + ":" + s + o.toString() + ")");
}
}
public void test() {
Animal
.values()
.stream(animal -> animal.apply("hello", "Hello"))
.forEach(System.out::println)
;
}
枚举动物实现双功能{
猫,
狗,
熊((s,o)->“这是一只熊!!!”;
私有最终双函数;
私人动物(最终双功能){
这个函数=函数;
}
私人动物(){
超级((s,o)->“(“+name()+”:“+s+o.toString()+”);
}
}
公开无效测试(){
动物
.values()
.stream(animal->animal.apply(“hello”、“hello”))
.forEach(System.out::println)
;
}