Я новичок как для сонара, так и для сварки / CDI. Я хотел бы, чтобы ваша помощь дала дальнейшие рекомендации по анализу результатов LCOM4 с помощью Weld / CDI Сначала я создаю простой класс Java, как показано ниже: -
------------- Источник ---------------
interface MyInterface1 {
String getName();
void setName(String name);
}
interface MyInterface2 extends MyInterface1 {
String getPhone();
void setPhone();
}
public interface MyPublishedInterface extend MyInterface1, MyInterface2 {
//There is no any definition, it just a collected capabilities
//which will be published to other package. Some capabilities
//may be hidden and use internally.
}
abstract class MyBean1 implements MyInterface1 {
private String name;
@Override
public String getName() {
return this.name;
}
@Override
public void setName(String theName) {
this.name = theName;
}
}
abstract class MyBean2 extends MyBean1 implements MyInterface2 {
private String phone;
@Override
public String getPhone() {
return this.phone;
}
@Override
public void setPhone(String thePhone) {
this.phone= thePhone;
}
}
public class MyPublishedBean extends MyBean2 implements MyPublishedInterface {
//There is no any coding, it just a collected capabilities
//which will be published to other package. Some capabilities
//may be hidden and use internally.
}
@Named
@RequestScope
public class MyBackingBean {
@Inject
private MyPublishedInterface myPublishedInterface;
//-----the business method, setter and getter here.
}
------------- Источник ---------------
После того, как я проанализировал с помощью сонара, он сообщает, что MyPublishedBean имеет LCOM4> 1 как
- getPhone () Ljava / языки / String;
- SetName (Ljava / языки / String;) V
- setPhone (Ljava / языки / String;) V
- GetName () Ljava / языки / String;
Ранее я использовал для обозначения всех методов как «окончательный», нет никаких упоминаний о LCOM4. В любом случае система показывает мне исключение Unproxyable, так как мой класс содержит последний метод. Я удалил "финал", я столкнулся с проблемой LCOM4.
Я не уверен, запутался ли я в сонаре, сварке / CDI, дизайне класса / интерфейса или всех них. Не могли бы вы помочь проконсультировать дальше?