Java方法参数不适用
首先,由于缺乏更好的头衔而任命。希望有更多Java经验的人能够将其更改为更合适的版本 因此,我面临以下例外情况: 方法copyPartialMatches(String、Iterable、T)在类型中 StringUtil不适用于参数(字符串,字符串[], (列表) 此方法的示例说明: 参数:Java方法参数不适用,java,collections,Java,Collections,首先,由于缺乏更好的头衔而任命。希望有更多Java经验的人能够将其更改为更合适的版本 因此,我面临以下例外情况: 方法copyPartialMatches(String、Iterable、T)在类型中 StringUtil不适用于参数(字符串,字符串[], (列表) 此方法的示例说明: 参数: 令牌-要搜索的字符串 原始-要筛选的字符串的可编辑集合。 集合-要向其添加匹配项的集合 我的代码: public class TabHandler implements TabCompleter {
令牌-要搜索的字符串
原始-要筛选的字符串的可编辑集合。
集合-要向其添加匹配项的集合
我的代码:
public class TabHandler implements TabCompleter {
private static final String[] params = {"help", "menu", "once", "repeat", "infinite", "cancel"};
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
final List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[0], params, completions);
Collections.sort(completions);
return completions;
}
}
公共类TabHandler实现TabCompleter{
私有静态最终字符串[]参数={“帮助”,“菜单”,“一次”,“重复”,“无限”,“取消”};
@凌驾
公用列表onTabComplete(CommandSender-sender、Command-Command、字符串别名、字符串[]args){
最终列表完成=新建ArrayList();
StringUtil.copyPartialMatches(参数[0],参数,完成);
集合。排序(完成);
返回完成;
}
}
我很确定问题出在
完成列表上。也许这不是一个有效的集合?这是我的理解,但现在我只是在这里不知所措。所以希望你们能帮我。尝试将实际的列表作为第二个参数传递给StringUtil#copyPartialMatches
:
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
final List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[0], Arrays.asList(params), completions);
// ^^^ change is here
Collections.sort(completions);
return completions;
}
@覆盖
公用列表onTabComplete(CommandSender-sender、Command-Command、字符串别名、字符串[]args){
最终列表完成=新建ArrayList();
StringUtil.copyPartialMatches(args[0],Arrays.asList(params),completions);
//这里有零钱
集合。排序(完成);
返回完成;
}
尝试将实际的列表作为第二个参数传递给StringUtil#copyPartialMatches
:
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
final List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[0], Arrays.asList(params), completions);
// ^^^ change is here
Collections.sort(completions);
return completions;
}
@覆盖
公用列表onTabComplete(CommandSender-sender、Command-Command、字符串别名、字符串[]args){
最终列表完成=新建ArrayList();
StringUtil.copyPartialMatches(args[0],Arrays.asList(params),completions);
//这里有零钱
集合。排序(完成);
返回完成;
}
字符串[]
不可编辑。改变
StringUtil.copyPartialMatches(args[0], params, completions);
而是传递一个列表
。大概
StringUtil.copyPartialMatches(args[0], Arrays.asList(params), completions);
String[]
不可Iterable
。改变
StringUtil.copyPartialMatches(args[0], params, completions);
而是传递一个列表
。大概
StringUtil.copyPartialMatches(args[0], Arrays.asList(params), completions);
数组
不实现Iterable接口。这就是方法签名不匹配的原因。将数组
转换为列表
有效,因为后者实现了接口
数组的forEach
循环是一种特殊情况(数组没有实现Iterable
接口,但是使用forEach
循环工作)。
数组
不实现Iterable接口。这就是方法签名不匹配的原因。将数组
转换为列表
有效,因为后者实现了接口
数组的forEach
循环是一种特殊情况(数组没有实现Iterable
接口,但使用forEach
循环工作)。谢谢!立即解决问题^^^将在能够接受时接受:)谢谢!直接解决了问题^^^将在能够接受时接受:)谢谢,这确实解决了问题。我会接受Tim Biegeleisen的回答,因为他稍微快一点。但是你的两个答案都一样好:)@icecub没问题。很高兴问题解决了。谢谢,这确实解决了问题。我会接受Tim Biegeleisen的回答,因为他稍微快一点。但是你的两个答案都一样好:)@icecub没问题。很高兴问题得到解决。谢谢,我相信这些信息对未来的读者会有用。谢谢,我相信这些信息对未来的读者会有用