我创建界面:
public interface IMetadata {
List<UserData> getUserData();
}
实现:
@ServiceProvider(service = IMetadata.class)
public class IMetadataImpl implements IMetadata {
private Configuration configuration = new ConfigurationImpl().getConfiguration();
@Override
public List<UserData> getUserData() {
System.out.println("configuration: " + configuration.hashCode());
return configuration.getUserData();
}
}
并在Top Component
中的另一个模块上使用它:
private IMetadata metadata = Lookup.getDefault().lookup(IMetadata.class);
完美的工作。但是,我在另一个窗口中更改了该对象(加载新数据),我的方法“ getUserData()”返回了旧对象。我通过hashCode
看到了这一点。我该如何做,以便在对象更改时通知所有lookup
进行刷新?