Java 错误:找不到函数名的符号
我的代码中有一小部分有点问题,我从早上开始就在使用这个特殊的代码,所以我可能有点傻。基本上,它将数组的索引与另一个类中的另一个数字进行比较,这就是代码和错误Java 错误:找不到函数名的符号,java,Java,我的代码中有一小部分有点问题,我从早上开始就在使用这个特殊的代码,所以我可能有点傻。基本上,它将数组的索引与另一个类中的另一个数字进行比较,这就是代码和错误 private static int encontrarCanal(int pbuscarCanal){ int channelFound = -1; for(int i=0; i<numCanales; i++){ if(canales[i].getCanal() == p
private static int encontrarCanal(int pbuscarCanal){
int channelFound = -1;
for(int i=0; i<numCanales; i++){
if(canales[i].getCanal() == pbuscarCanal){
channelFound = i;
i = numCanales;
}
}
return channelFound;
}
错误是:
error: cannot find symbol
if(canales[i].getCanal(i) == pbuscarCanal){
^
symbol: method getCanal()
location: class String
1 error
我只需要修补一下就可以了,所以任何帮助都将不胜感激
编辑:
字符串数组通道的声明:
static String[] canales = {"Channel1","Channel2","Channe3","Channel4"};
尝试做:
static ArrayList<String> channel = new ArrayList<String>(Arrays.asList(canales));
staticarraylistchannel=newarraylist(Arrays.asList(canales));
但它给出了一个错误:
error: cannot find symbol
static ArrayList<String> channel = new ArrayList<String>(Arrays.asList(canales));
错误:找不到符号
静态ArrayList通道=新的ArrayList(Arrays.asList(canales));
如果没有canales[]的声明,很难说清楚,但似乎您正在尝试对string对象调用getCanal()
symbol: method getCanal()
location: class String
您的问题在这条消息中表达得再清楚不过了:String
类没有名为getCanal()
的方法,canales[i]
是一个字符串,正如您声明的那样:static String[]canales=…
作为对更新的响应,ArrayList
也是一个String
对象的列表,因此调用yourList.get(i).getCanal()
与之前的操作没有什么不同。你的问题不在于你正在使用的数据结构,而在于你在其中存储的东西——字符串
如果包含getCanal()
方法的类被称为Foo
,则将编译以下任一项:
Foo[] canales = {...}
...
canales[i].getCanal();
//or:
ArrayList<Foo> canales = new ArrayList<>();
...add Foo objects
canales.get(i).getCanal();
我不知道您之前的“类似情况”是什么,但是学习类/包之间如何交互是学习Java的一个非常基本和重要的步骤。这是一个很好的开始 您可能需要向类强制转换
canales[i]
,以便该方法在该范围内可见。例如,((YourClass)运河[I]).getCanal()代码>canales的声明在哪里?你对canales的定义是什么,它是一个字符串列表?@blurfus它不起作用…@andy添加了声明。添加了有关编辑的信息。但是getCanal()在另一个类(文件)中,在前面的类似问题中,这样做对我很有效。
Foo[] canales = {...}
...
canales[i].getCanal();
//or:
ArrayList<Foo> canales = new ArrayList<>();
...add Foo objects
canales.get(i).getCanal();
package yourpackage;
import otherpackage.Foo;
//other imports...
class ClassThatUsesFoo {