Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use java to get the specified annotated class under the package

Shulou Source: shulou.com Published: 2022-06-03 09:40:54 11月13日 Update

This article mainly introduces how to use java to get the specified annotated classes under the package. The article is very detailed and has a certain reference value. Interested friends must read it!

Option 1: adopt the reflections framework (this framework depends on com.google.guava)

1. Reflections frame address: https://github.com/ronmamo/reflections

2. Project dependence

Org.reflections reflections 0.9.11 com.google.guava guava 21.0

3. Implementation code

/ / input the name of the package to be scanned Reflections f = new Reflections ("com.ggband.netty.execute.command"); / / enter the target annotation class Set > getClasses (String packageName) throws Exception {/ / List > () of the first class class; Set loadClass (String name) throws ClassNotFoundException {return super.loadClass (name);}}; classes.add (classLoader.loadClass (classsName));} public Set > controllers = new HashSet () Set > set = new Scanner () .getAnnotationClasses (com.ggband.netty.execute.command, Cmd.class)

Extension: now you can implement your own business, such as scanning the Cmd annotated classes under the com.ggband.netty.execute.command package to get Cmd annotated value and instances of annotated classes

Map beanContainer = new HashMap (); try {/ / @ 1 uses the reflections framework (this framework relies on com.google.guava) / / Reflections f = new Reflections ("com.ggband.netty.execute.command"); / / Set > set = new Scanner (). GetAnnotationClasses ("com.ggband.netty.execute.command", Cmd.class); for (Class c: set) {Object bean = c.newInstance () Cmd annotation = c.getAnnotation (Cmd.class); beanContainer.put (Arrays.toString (annotation.value ()), (Command) bean);}} catch (Exception e) {e.printStackTrace ();} above is all the content of the article "how to use java to get the specified annotated classes under the package". Thank you for reading! Hope to share the content to help you, more related knowledge, welcome to follow the industry information channel!

Tags: Comments files frameworks loops iterations directories code content schemes articles same business value elements interests first half name address characters Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno vpn Shulou Technology Xiaomi Linux NVidia