在接口实现中更改私有变量值

Change private variable value inside interface implementation

我在更改接口实现内部的私有变量(实现接口的 class 的值)时遇到问题。

我有一个接口IClient:

public interface IClient{

    void showNewArticles(Article a);
}

和一个 class Client 实现 IClient:

public class Client implements IClient{

 ( .... )

 private DefaultListModel<String> listModelArticles = new DefaultListModel<>();

 ( .... )

 @Override
 public void showNewArticles(Article a){

     String infoArticle = ("["+a.getKeyword().toUpperCase()+"] "+a.getTitle());

     listModelArticles.addElement(infoArticle);
     listArticles.setModel(listModelArticles);
 }

}

问题是当我执行 showNewArticles() 方法时,它不会在 listModelArticles 中添加一个元素,但是如果我创建一个私有或 public 方法(内部Client class ) 并在其中执行 listModelArticles.addElement(infoArticles) ,infoArticle 已正确插入到模型中。与访问修饰符有关吗?

我找到了解决方案。调用客户端 class 的 IClient 方法的 class 有问题。感谢所有试图解决我的问题的人:)

我的解决方案:

@Override
public void showNewArticles(Article a) throws RemoteException {

   IClient client = MainController.getInstance().getClient();
   client.showNewArticles(a);
}

解决前:

@Override
public void showNewArticles(Article a) throws RemoteException {

  ClientI.getInstance().showNewArticles(a);
}

虽然我使用的是 Singleton,但我不知道为什么它以前不起作用。不过现在可以了。