我无法更改接口实现中私有变量(实现接口的类)的值。
我有一个界面 IClient :
public interface IClient{
void showNewArticles(Article a);
}
以及实施 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
中添加元素,但如果我创建私有或公共方法(在Client类内)并执行在其中listModelArticles.addElement(infoArticles)
,infoArticle正确插入到模型中。是否与访问修饰符有关?
答案 0 :(得分:0)
我找到了解决方案。调用Client类的IClient方法的类是一个问题。感谢所有试图解决我问题的人:)
我的解决方案:
@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。但现在它有效。