当前位置:  开发笔记 > 编程语言 > 正文

Java错误:找到了接口......但是预期了类

如何解决《Java错误:找到了接口但是预期了类》经验,为你挑选了2个好方法。

我从我的代码中得到一个奇怪的运行时错误:

"Found interface [SomeInterface] but class was expected"

怎么会发生这种情况?如何实例化接口?

更新:(针对一些答案)我编译,并用同样的程序库的运行,但我正在用吉斯注入这个特定接口的提供者.

当我将一个实现绑定到接口时,问题就消失了(似乎@ImplementedBy注释还不够).

我对Guice设法实际实例化接口的机制更感兴趣.



1> Jared..:

当运行时类路径与编译时类路径不同时,会发生这种情况.

编译应用程序时,类(SomeInterface在您的问题中命名)作为类存在.

当您的应用程序在编译时运行时,SomeInterface作为接口(而不是类)存在.

这会导致IncompatibleClassChangeError在运行时抛出.

如果编译时类路径上的jar文件版本与运行时类路径上的版本不同,则这是常见的情况.



2> starblue..:

很可能代码是针对库中的类编译的,然后将其更改为您运行的版本中的接口.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有