gpt4 book ai didi

java - MethodHandles.lookup().lookupClass() 与 getClass()

转载 作者:行者123 更新时间:2023-12-04 00:51:39 24 4
gpt4 key购买 nike

谁能告诉我
版本 1:

protected final Logger log = Logger.getLogger(getClass());
对比
版本 2:
protected final Logger log = Logger.getLogger(MethodHandles.lookup().lookupClass());
版本 2 一般比 快版本 1 ?
我猜版本 1 使用反射(在运行时)来确定当前类,而版本 2 不需要使用反射,或者(是否在构建时完成检查)?

最佳答案

你的第一个案例不涉及反射(reflection)。 Object#getClass()映射到 JVM 的本地方法。
您的 second case不是 Object#getClass() 的替代品,用于查找方法句柄。
微妙的区别是,它们用于完全不同的目的。

关于java - MethodHandles.lookup().lookupClass() 与 getClass(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65903758/

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