Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何给出参数类<&燃气轮机;上课<;A>;_Java - Fatal编程技术网

Java 如何给出参数类<&燃气轮机;上课<;A>;

Java 如何给出参数类<&燃气轮机;上课<;A>;,java,Java,在下面的代码中,我分析了一个给定的包,以获得使用给定注释注释的所有类 我想将它们加载到带有注释(及其值)的地图中 并且仍然存在以下错误(编译时相同): 编辑: 在解决了我的问题后,我注意到另一个错误。注释实例必须是map的值,而不是键;)Pce您需要引入一个命名类型变量。否则,编译器无法知道这两个通配符类型应该是同一类型 例如: public static <T extends Annotation> ImmutableMap<Class<T>, Clas

在下面的代码中,我分析了一个给定的包,以获得使用给定注释注释的所有类

我想将它们加载到带有注释(及其值)的地图中

并且仍然存在以下错误(编译时相同):

编辑:

在解决了我的问题后,我注意到另一个错误。注释实例必须是map的值,而不是键;)Pce

您需要引入一个命名类型变量。否则,编译器无法知道这两个通配符类型应该是同一类型

例如:

public static <T extends Annotation>
    ImmutableMap<Class<T>, Class<?>> find(
        Class<T> annotation, String packageBase) {
公共静态

ImmutableMap感谢您的快速回答,但我仍然有相同的错误(不是IDE错误,因为我无法编译)@Romain:您需要以文本而不是图像的形式提供整个编译器错误。您已经删除了重要信息。Intellij自动编译并显示错误。编译器给出了相同的结果:Error:(20,25)java:不兼容类型:推理变量K具有不兼容的边界等式约束:java.lang.Class下限:A@Romain:这仍然不是全部错误消息,但更好。查看我的编辑,我相信我有你问题的答案。对于将来的参考,对于编译器错误,最好创建一个可以从命令行编译的代码(如果可能,直接使用
javac
)。然后你可以在你的问题中提供完整的编译器输出。编辑得很好,你得到了。我想获取注释实例,然后获取其内容。谢谢!请将整个编译器错误包含为文本,而不是屏幕截图。
getAnnotation()
返回注释实例,而地图需要注释的类。这就是问题所在吗?
public static <A extends Annotation> ImmutableMap<Class<A>, Class<?>> find(Class<A> annotation, String packageBase) {
    final ClassLoader loader = Thread.currentThread().getContextClassLoader();

    return ClassPath.from(loader).getTopLevelClassesRecursive(packageBase).stream()
            .filter(x -> x.load().getAnnotation(annotation) != null)
            .collect(Collectors.collectingAndThen(Collectors
                    .toMap(x -> x.load().getAnnotation(annotation), x-> x.load()), ImmutableMap::copyOf));
}
public static <T extends Annotation>
    ImmutableMap<Class<T>, Class<?>> find(
        Class<T> annotation, String packageBase) {