Fast and reliable way to find out if a source code file implements an interface

后端 未结 2 1216
夕颜
夕颜 2021-01-28 00:54

Given a java source code file, what is a fast and reliable way to find out if it implements a given interface?

A reliable way would be to parse the file into a syntax tr

2条回答
  •  旧时难觅i
    2021-01-28 01:22

    What would you do?

    I would compile the source code of the class and the interface, load both using Class.forName(), and use Class.isAssignableFrom to test if the class is a subtype of the interface.

    Relatively fast, totally reliable ... assuming that the source code is compilable.

    Note that this can all be done at runtime, and if you use a throw-away instance of a properly implemented custom classloader to do the loading, you can avoid polluting your JVM with dubious classes.

提交回复
热议问题