gpt4 book ai didi

Java方法引用

转载 作者:太空狗 更新时间:2023-10-29 22:37:34 24 4
gpt4 key购买 nike

我有一些使用这些方法的类(class):

public class TestClass
{

public void method1()
{
// this method will be used for consuming MyClass1
}

public void method2()
{
// this method will be used for consuming MyClass2
}
}

和类:

public class MyClass1
{
}

public class MyClass2
{
}

我想要HashMap<Class<?>, "question">我将像这样存储(键:类,值:方法)对(类“类型”与方法相关联)

hashmp.add(Myclass1.class, "question");

我想知道如何将方法引用添加到 HashMap(替换“问题”)。

附注我来自 C#,我只写了 Dictionary<Type, Action> :)

最佳答案

现在 Java 8 已经出来了,我想我会用如何在 Java 8 中做到这一点来更新这个问题。

package com.sandbox;

import java.util.HashMap;
import java.util.Map;

public class Sandbox {
public static void main(String[] args) {
Map<Class, Runnable> dict = new HashMap<>();

MyClass1 myClass1 = new MyClass1();
dict.put(MyClass1.class, myClass1::sideEffects);

MyClass2 myClass2 = new MyClass2();
dict.put(MyClass2.class, myClass2::sideEffects);

for (Map.Entry<Class, Runnable> classRunnableEntry : dict.entrySet()) {
System.out.println("Running a method from " + classRunnableEntry.getKey().getName());
classRunnableEntry.getValue().run();
}
}

public static class MyClass1 {
public void sideEffects() {
System.out.println("MyClass1");
}
}

public static class MyClass2 {
public void sideEffects() {
System.out.println("MyClass2");
}
}

}

关于Java方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10085457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com