【问题标题】:How to determine whether java class is anonymous?如何判断java类是否匿名?
【发布时间】:2018-06-22 07:37:51
【问题描述】:

我有这样的代码:

package x.y.z;

public class Test
{
    private static class MyRunnable implements Runnable
    {
        @Override
        public void run()
        {
            System.out.println("World");
        }
    }

    public static void main(String[] args)
    {
        final Runnable r1 = new Runnable() {
            @Override
            public void run()
            {
                System.out.println("Hello");
            }
        };

        final Runnable r2 = new MyRunnable();

        r1.run();
        r2.run();
    }
}

我正在研究一些代码分析模块,我想证明r1 是一个匿名类实例,而r2 不是。它们都是具有相同基类或接口的有效对象。我该怎么做?

细化:所有类都在加载中,所以我不需要分析文本。

【问题讨论】:

  • 您可以检查对构造函数的调用后跟空格和{ ?
  • @Berger 也可能有换行符 :)

标签: java class code-analysis anonymous-class


【解决方案1】:

Class 上有 isAnonymousClass method,所以:

if (r1.getClass().isAnonymousClass()) {
    // ...

【讨论】:

  • 是的,我一定错过了这么简单的方法……非常感谢。
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多