Java 为什么可以';我不能在这个循环中从另一个类调用一个方法吗?
我试图在Catalog类中创建一个过滤器,稍后将打印出价格高于用户输入的最低价格的“零件”。但是,我无法从Catalog类调用getNumPrice()(它在Part类中),我不知道为什么?我如何解决这个问题?我做错了什么Java 为什么可以';我不能在这个循环中从另一个类调用一个方法吗?,java,list,class,methods,Java,List,Class,Methods,我试图在Catalog类中创建一个过滤器,稍后将打印出价格高于用户输入的最低价格的“零件”。但是,我无法从Catalog类调用getNumPrice()(它在Part类中),我不知道为什么?我如何解决这个问题?我做错了什么 //The following is in the Part class public double getNumPrice(){ return this.price; } //The following is in the Catalog
//The following is in the Part class
public double getNumPrice(){
return this.price;
}
//The following is in the Catalogue class
private double readMinPrice(){
System.out.println("Enter minimum price ('-1' for no filtering): ");
return In.nextDouble();
}
private void filter(){
String type =readTypeFilter();
double minPrice = readMinPrice();
if ( type== "all" && minPrice==-1)
showParts();
else if (type=="all" && minPrice >= 0)
for(int i=0; i<= parts.size();i++)
if (part.getNumPrice() >= minPrice)
System.out.println( i+1 + "." + parts.get(i));
}
//以下内容在零件类中
公共双getNumPrice(){
退回这个价格;
}
//以下是目录类
私有双读明码(){
System.out.println(“输入最低价格('-1'表示无筛选):”;
返回.nextDouble();
}
专用空过滤器(){
字符串类型=readTypeFilter();
double minPrice=readMinPrice();
if(type==“all”&&minPrice==-1)
showParts();
else if(type==“all”&&minPrice>=0)
for(int i=0;i=minPrice)
System.out.println(i+1+“+parts.get(i));
}
您有一个parts
集合,您正在循环中调用part.getNumPrice()
我没有在代码中看到任何声明,但我假设
parts
是一个字段,您试图在循环中执行类似parts.get(I).getNumPrice()
的操作。您需要在循环中使用索引部分
for(int i=0; i<= parts.size();i++)
if (parts.get(i).getNumPrice() >= minPrice)
for(int i=0;i=minPrice)
你说不能打电话到底是什么意思?编译器错误?“我无法调用getNumPrice”你是什么意思?是否有错误?请清楚地显示这两个类,并包括main()
。另外,环顾四周,通读一下。特别是,一定要引用准确的错误,而不是仅仅说你得到了一个错误。似乎你的part
变量没有定义在任何地方。或零件
,或许多其他变量。请回答您的问题,并将代码片段替换为,我们可以编译和测试。警告:您正在使用==
比较字符串。永远不要那样做;使用equals
方法比较字符串。