【发布时间】:2013-02-28 16:52:46
【问题描述】:
我刚刚开始尝试使用装饰器。我还没有看到的一件事是不可变转发装饰器。我正在处理的示例代码是here
似乎我可以为装饰器指定一个 ImmutableSet,但如果 ImmutableSet 是 ForwardingSet 的“委托”,则没有编译时警告。
我是否需要扩展 ForwardingSet 并创建 ForwardingImmutableSet 然后将其用作我的装饰器?
有人试过吗?
任何建议都会有所帮助。
使用上面提供的代码链接试试这个:
public void test1()
{
final ImmutableSet<String> stringsA = ImmutableSet.of("A1", "A2", "A3");
final ISetA a = SetA.of(stringsA);
a.add("A0"); // Run-time error
stringsA.add("A0"); // Compile time warning, Run-time error
}
我只想查看“a.add("A0");”的编译时警告
当然,我可以选择创建一个更受限制的接口,我可能只是从那里开始,但我想知道我是否必须做一个 ForwardingImmutableSet 我从哪里开始?
【问题讨论】:
标签: java collections guava