你可以定义一个泛型方法,传入一个 java.util.function.Supplier 接口对象作为参数,该接口的 get() 方法返回一个泛型 T 类型的值。方法执行时,调用 Supplier 对象的 get() 方法获取结果并返回。
以下是一个示例代码:
import java.util.function.Supplier;
public class MyUtils {
public static <T> T executeWithLog(Supplier<T> supplier) {
System.out.println("执行前置操作");
T result = supplier.get();
System.out.println("执行后置操作");
return result;
}
}
在这个工具类中,我们定义了一个泛型方法 executeWithLog,该方法接受一个 java.util.function.Supplier 对象作为参数,这个对象的 get() 方法返回一个泛型 T 类型的结果。方法内部先执行前置操作,然后调用 Supplier 对象的 get() 方法获取结果,最后执行后置操作并返回结果。
你可以像这样使用 MyUtils 类:
public class Main {
public static void main(String[] args) {
String result = MyUtils.executeWithLog(() -> {
// 在这里编写需要执行的语句,返回结果
return "执行结果";
});
System.out.println(result); // 输出:"执行结果"
}
}
在这个示例中,我们使用了 MyUtils.executeWithLog() 方法,并传递一个 java.util.function.Supplier 对象作为参数。在这个对象的 get() 方法中,我们编写了需要执行的语句,并返回了结果。执行完毕后,MyUtils.executeWithLog() 方法会输出执行前置操作和执行后置操作,并返回执行结果。最后我们将结果输出到控制台。