java获取引用名_在运行时Java中获取方法引用的名称是否可能(如何)?[复制品]
发布日期:2022-02-18 13:19:49 浏览次数:8 分类:技术文章

本文共 783 字,大约阅读时间需要 2 分钟。

最近我使用了很多方法引用和lambda,我想知道在运行时是否可以打印以筛选lambda IE的名称的源代码,只是出于调试的原因。我在getname()中调用getClass()可能会使用反射,但我找不到一个方法来查找原始源引用的名称。

我有一个功能接口,比如:

@FunctionalInterface

public interface FooInterface {

// function etc etc irrelevant

public void method();

public default String getName() {

// returns the name of the method reference which this is used to define

}

}

然后假设我希望测试运行接口,并将功能接口的源文件打印到屏幕上。

public static void doStuff(FooInterface f) {

// prints the lambda name that is used to create f

System.out.println(f.getName());

// runs the method itself

f.method();

}

如果我这样做:

doStuff(Foo::aMethodReference);

它应该在屏幕上打印类似“amethodReference”的内容,这样我就可以知道运行时运行的是哪些方法,以什么顺序等等。

我很怀疑这是可能的,考虑到lambda不是一个物体,但嘿,我想可能有一个解决办法。此外,Eclipse调试工具只是说它是一个lambda,没有任何其他信息,lambda是否保留了这些信息?还是在运行时全部丢失?

干杯。(如果有什么不同的话,我使用的是JDK 11)

转载地址:https://blog.csdn.net/weixin_28926205/article/details/114560783 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java分布式对象_JAVA基础之分布式对象
下一篇:java单元测试测试异常_java单元测试

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月23日 16时11分03秒