reflect

Java reflection utilities

Лицензия

Лицензия

Группа

Группа

io.ytcode
Идентификатор

Идентификатор

reflect
Последняя версия

Последняя версия

1.2.1
Дата

Дата

Тип

Тип

jar
Описание

Описание

reflect
Java reflection utilities
Ссылка на сайт

Ссылка на сайт

https://github.com/wangyuntao/reflect
Система контроля версий

Система контроля версий

https://github.com/wangyuntao/reflect

Скачать reflect

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/io.ytcode/reflect/ -->
<dependency>
    <groupId>io.ytcode</groupId>
    <artifactId>reflect</artifactId>
    <version>1.2.1</version>
</dependency>
// https://jarcasting.com/artifacts/io.ytcode/reflect/
implementation 'io.ytcode:reflect:1.2.1'
// https://jarcasting.com/artifacts/io.ytcode/reflect/
implementation ("io.ytcode:reflect:1.2.1")
'io.ytcode:reflect:jar:1.2.1'
<dependency org="io.ytcode" name="reflect" rev="1.2.1">
  <artifact name="reflect" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.ytcode', module='reflect', version='1.2.1')
)
libraryDependencies += "io.ytcode" % "reflect" % "1.2.1"
[io.ytcode/reflect "1.2.1"]

Зависимости

compile (2)

Идентификатор библиотеки Тип Версия
org.slf4j : slf4j-api jar 1.7.25
com.google.guava : guava jar 20.0

test (2)

Идентификатор библиотеки Тип Версия
org.slf4j : slf4j-simple jar 1.7.25
junit : junit jar 4.12

Модули Проекта

Данный проект не имеет модулей.

Reflect

For making life better and easier.

Build Status Maven Release Javadocs

What is Reflect?

Reflect is a classpath scanner and filter, using it you can scan your classpath, filter your resources, classes, fields, methods and constructors.

It's immutable, fluent and simple, so it's also thread safe and easy to use.

It's inspired by Reflections and Guava ClassPath.

Usage

// Scanner
Resources rs1 = Scanner.pkgs("io.ytcode.reflect").scan();
for (Resource r : rs1) {
  System.out.println(r);
}

Resources rs2 = Scanner.paths("/io/ytcode/reflect/").scan();
System.out.println(rs2.size());

Resources rs3 = Scanner.paths("/").scan();
System.out.println(rs3.size());

Resources rs4 =
    Scanner.from(
            ImmutableSet.of(
                ClassLoader.getSystemClassLoader(),
                ClassLoader.getSystemClassLoader().getParent()),
            ImmutableSet.of("/io/ytcode/reflect/clazz/", "/io/ytcode/reflect/resource/"),
            false)
        .scan();
System.out.println(rs4.size());
// Resources
Resources rs1 = Scanner.paths("/io/ytcode/reflect/").scan();

Resources rs2 = rs1.pattern(".*/resource/.*").suffix(".class");
System.out.println(rs2.size());

Resources rs3 =
    rs1.filter(
        new Predicate<Resource>() {
          @Override
          public boolean apply(Resource r) {
            return r.name().endsWith(".xml");
          }
        });
System.out.println(rs3.size());
// Classes
Classes cs1 = Scanner.paths("/io/ytcode/reflect/").scan().classes();

Classes cs2 = cs1.subTypeOf(Filterable.class);
for (Class<?> c : cs2) {
  System.out.println(c);
}

Classes cs3 = cs1.annotatedWith(Beta.class).filter(Predicates.<Class<?>>equalTo(Classes.class));
System.out.println(cs3.size());

Classes cs4 = cs1.modifiers(Modifier.PUBLIC, Modifier.ABSTRACT);
System.out.println(cs4.size());
// Fields
Fields fs1 = Scanner.paths("/io/ytcode/reflect/").scan().classes().fields();

Fields fs2 =
    fs1.annotatedWith(Beta.class)
        .filter(
            new Predicate<Field>() {
              @Override
              public boolean apply(Field f) {
                return Modifier.isStatic(f.getModifiers());
              }
            });
System.out.println(fs2);

Fields fs3 = fs1.modifiers(Modifier.PUBLIC, Modifier.STATIC);
System.out.println(fs3);
// Methods
Methods ms1 = Scanner.paths("/io/ytcode/reflect/").scan().classes().methods();

Methods ms2 =
    ms1.filter(
        new Predicate<Method>() {
          @Override
          public boolean apply(Method m) {
            return Invokable.from(m).isPublic();
          }
        });
System.out.println(ms2);

Methods ms3 = ms1.modifiers(Modifier.PUBLIC, Modifier.STATIC);
System.out.println(ms3);
// Constructors
Constructors cs1 = Scanner.paths("/io/ytcode/reflect/").scan().classes().constructors();

Constructors cs2 =
    cs1.filter(
        new Predicate<Constructor<?>>() {
          @Override
          public boolean apply(Constructor<?> input) {
            return Invokable.from(input).isPublic();
          }
        });
System.out.println(cs2);

Constructors cs3 = cs1.modifiers(Modifier.PUBLIC);
System.out.println(cs3);

License

Reflect is licensed under the open-source Apache 2.0 license.

Contributing

Please see the guidelines for contributing before creating pull requests.

Версии библиотеки

Версия
1.2.1
1.2.0
1.1.0
0.1.0