我可以为SuggestBox和MultiWordSuggestOracle找到的所有信息表明,为建议框设置oracle的唯一方法是构造它.我不认为这是有道理的,因为有一个默认构造函数不接受oracle并为你创建一个,可能是空的.这没什么好处的.我正在寻找的是类似setSuggestOracle(MultiWordSuggestOracle)或的方法addToSuggestOracle(String),但我在文档中找不到任何建议如何做到这一点.
看起来你可以在创建SuggestOracle之后更改它的实例SuggestBox,但是你可以使用它来访问它SuggetBox::getSuggestOracle().从那里你必须转向实现类来对其进行更改; 该SuggestOracle基类本身不提供任何内容.所以类似于:
SuggestOracle oracle = new MultiWordSuggestOracle();
SuggestBox box = new SuggestBox(oracle);
try {
MultiWordSuggestOracle multiWordOracle = (MultiWordSuggestOracle)box.getOracle();
multiWordOracle.add("This awesome suggestion.");
} catch (ClassCastException e ) {
// the oracle was not what you thought it was
}
Run Code Online (Sandbox Code Playgroud)