У меня есть модуль в проекте OSGi.странное поведение переопределенного метода. У меня ошибка ann
payment
- payment-api
- payment-impl
в payment-api
У меня есть интерфейс UserService
public interface UserService{
String method1(String p1, int p2);
String method2(String p1);
}
И реализация
public class UserServiceImpl implements UserService{
@Override
public String method1(String p1, int p2){
//code
returnt result;
}
@Override
public String method2(String p1){
//code
returnt result;
}
}
И мой модуль payment-impl
о зависимостях
<dependency>
<groupId>mydomain</groupId>
<artifactId>payment-api</artifactId>
<version>1.0.0</version>
</dependency>
Он отлично работает. Но теперь, если я пытался добавить новую mrthod в UserService
и после того, как переопределить этот метод в UserServiceImpl
У меня есть ошибка:
public interface UserService{
String method1(String p1, int p2);
String method2(String p1);
String test(int a);
}
и
@Override
public String test(int a) {
return "sdfsdff";
}
java:[94,9] method does not override or implement a method from a supertype
Но если удалить @Override
аннотацию все отлично работает. Я не понимаю, почему? как это может быть?
interface Y{
String method();
}
public class X implemets Y{
@Override
String method(){
return "some string";
}//is error
//------
String method(){
return "some string";
}//is fine
}
И если я не реализую этот метод, компилятор метода ругается. И по умолчанию IDE переопределяет methosd с аннотацией. И еще один метод, который уже реализован, отлично работает без аннотаций
Это псевдокод, и, хотя это нормально для SO, пожалуйста, убедитесь, что пример работает с точки зрения воссоздания вашего кода. Код ошибки * очень специфичен * - Вы пытались изменить свой шаблон, чтобы ответить на ошибку? – wahwahwah
Просто угадывая здесь, модуль impl все еще может ссылаться на устаревшую версию модуля api. Если этот узел указывает Maven, вы можете переименовать свою версию 1.0.0-SNAPSHOT, очистить кэш .m2, а затем очистить и перестроить продукт. –
Roman
Да, я попробовал. конечный вопрос псевдокода. первый код реального проекта, изменились только имена методов. – user5620472