我可以为SuggestBox和MultiWordSuggestOracle找到的所有信息表明,为建议框设置oracle的唯一方法是构造它.我不认为这是有道理的,因为有一个默认构造函数不接受oracle并为你创建一个,可能是空的.这没什么好处的.我正在寻找的是setSuggestOracle(MultiWordSuggestOracle)或addToSuggestOracle(String)等方法,但我在文档中找不到任何建议如何执行此操作的内容.
解决方法
在创建SuggestBox之后,您似乎无法更改SuggestOracle的实例,但您可以使用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 }