can't cast to implemented interface

前端 未结 2 1109
忘掉有多难
忘掉有多难 2020-11-29 08:55

i\'m very confused...

I have a class which directly implements an interface:

public class Device implements AutocompleteResult
{...}
<
2条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-29 09:35

    This can happen if two different classloaders load a class named AutocompleteResult.

    These two classes are then treated as entirely different classes, even if they have the same package and name (and even implementation/fields/methods).

    A common cause for this is if you use some kind of plugin system and both your base classes and the plugin classes provide the same class.

    To check for this issue print the value returned by Class.getClassLoader() on both offending classes (i.e. the class of the interface implemented by Device and the result of AutocompleteResult.class).

提交回复
热议问题