|
|
1
3
在stacktraces中,您还将获得源文件中的行号。假设你有来源,这将揭示它是哪个常数。(在eclipse中,只需单击console视图中的行号即可直接导航到源代码)。 要找到类的常量名,可以获取枚举的类文件,并反汇编静态初始值设定项。例如,如果编译:
你得到:
但可能有一种更优雅的方法,但如果所有其他方法都失败了,这应该可以做到。 |
|
2
1
我想班级的名字等于
有效Java第2版,第31项详细解释了为什么 . |
|
|
3
1
你可以做一个比较
您还可以使用非匿名类,在这种情况下,您将知道每个类的名称。 如果您被迫使用匿名类,并且不想在代码中使用,我相信您只需要尝试手动跟踪。 但是您可以将上面的代码作为调试工具,将其作为助手方法或在调试器中运行。这样您就可以确认哪个匿名类正在接收每个名称。 |
|
|
4
0
一般来说
如果您出于某种原因拥有类名并希望找到相应的枚举值,在我看来最简单的方法是
我还没有测试过上面的内容,但它似乎应该是有效的,并且是可靠的。 |
|
|
5
0
首先,对于编译器如何为匿名内部类选择名称,我不认为有任何保证。也就是说,如果这是一种你不希望经常做的一次性分析,那么写一个简单的测试,看看名字是否符合你的预期,我的猜测是这样的。如果您希望在编译器的新版本发布之前完成分析,那么不要太担心它。 如果您正在寻找一个更长期的解决方案,而您只需要对日志和分析数据进行静态分析,那么为什么不让您的系统在启动时记录每个枚举类型的类名呢?所以不管你有什么鞋带挂钩,你都要做些什么:
|
|
|
H.v.M. · 为最后一个枚举值指定不同的变量值 3 年前 |
|
|
JimmyDiJim · 在声明后定义枚举变量 7 年前 |
|
|
Eli K · 语法错误,插入“{”以完成枚举体(在类的末尾) 7 年前 |
|
|
Vivek Shukla · 在中间添加枚举 7 年前 |
|
|
DannyD · 如何访问typescript中的枚举名称 7 年前 |