Java Can';t查找对象中定义的符号(方法)';s级
这是一个类的代码,该类使用ArrayList为计算机零件店的目录建模。所有包含的对象(产品)都已定义,包括获取和设置数量变量的方法Java Can';t查找对象中定义的符号(方法)';s级,java,oop,object,methods,getter,Java,Oop,Object,Methods,Getter,这是一个类的代码,该类使用ArrayList为计算机零件店的目录建模。所有包含的对象(产品)都已定义,包括获取和设置数量变量的方法 import java.util.*; public class AvailablesCatalog { public AvailablesCatalog(List cat1) { Motherboard item1 = new Motherboard("MD4652", 1995, "Lenovo", 100.50, "Intel", 32, 5,
import java.util.*;
public class AvailablesCatalog {
public AvailablesCatalog(List cat1) {
Motherboard item1 = new Motherboard("MD4652", 1995, "Lenovo", 100.50, "Intel", 32, 5, 0);
CPU item2 = new CPU("RTJ357", 1850, "Intel", 182.50, 2.9, 6, 0);
Graphics item3 = new Graphics("P99E0", 2014, "AMD", 70.50, "AMD", 6, 0);
RAM item4 = new RAM("THN46", 1999, "Microsoft", 30.50, "DDR2", 4, 1600, 0);
HD item5 = new HD("M9052", 2001, "LG", 100, "SSD", 2.5, 750, 0);
Monitor item6 = new Monitor("D42", 2006, "LG", 200, "LED", 17.5, "1920x1080", "HDMI", 0);
Keyboard item7 = new Keyboard("F16", 2010, "Microsoft", 25.70, "Wireless", 0);
Mouse item8 = new Mouse("JERRY", 2010, "Microsoft", 30.50, "Laser", "Wireless", 0);
Printer item9 = new Printer("PRNTR", 1995, "Lexmark", 40.50, "Laser", "Colored", 0);
cat1.add(item1);
cat1.add(item2);
cat1.add(item3);
cat1.add(item4);
cat1.add(item5);
cat1.add(item6);
cat1.add(item7);
cat1.add(item8);
cat1.add(item9);
}
public String toString(List cat1) {
int flag = 0;
for(int i=0; i<cat1.size(); i++) {
if(cat1.get(i).getQuantity() != 0) {
System.out.println(cat1.get(i).toString());
}
else {
flag ++;
}
}
if(flag == 9) {
System.out.println("No products");
}
return "-------------------------------------------------------------------------";
}
}
import java.util.*;
公共类可用目录{
公共可用目录(列表cat1){
主板项目1=新主板(“MD4652”,1995,“联想”,100.50,“英特尔”,32,5,0);
CPU项2=新CPU(“RTJ357”,1850,“英特尔”,182.50,2.9,6,0);
图形项目3=新图形(“P99E0”,2014,“AMD”,70.50,“AMD”,6,0);
RAM项4=新RAM(“THN46”,1999,“微软”,30.50,“DDR2”,41600,0);
高清项目5=新高清(“M9052”,2001,“LG”,100,“SSD”,2.5750,0);
监视器项目6=新监视器(“D42”,2006,“LG”,200,“LED”,17.5,“1920x1080”,“HDMI”,0);
键盘项目7=新键盘(“F16”,2010,“微软”,25.70,“无线”,0);
鼠标项目8=新鼠标(“JERRY”,2010,“Microsoft”,30.50,“激光”,“无线”,0);
打印机项目9=新打印机(“PRNTR”,1995年,“利盟”,40.50,“激光”,“彩色”,0);
第1类。添加(第1项);
第1类。添加(第2项);
第1类。添加(第3项);
第1类。添加(第4项);
第1类。添加(第5项);
第1类。添加(第6项);
第1类。添加(第7项);
第1类。添加(第8项);
第1类。添加(第9项);
}
公共字符串到字符串(列表cat1){
int标志=0;
对于(int i=0;i,因为编译器不知道List
中的对象将属于Catalog
改变
List cat1
到
列出cat1
在toString()中
假设Catalog
是包含此方法的类,并且您在列表中严格拥有此类型的所有对象,因为编译器不知道list
中的对象将属于Catalog
改变
List cat1
到
列出cat1
在toString()中
假设summingCatalog
是包含此方法的类,并且在列表中严格拥有此类型的所有对象您没有使用泛化列表,因此当您在其上调用get(i)
时,它返回一个对象
,并且没有getQuantity()对象上的
方法。尝试将您的列表
声明为列表
或任何您的RAM
基类、主板
、键盘
等。您没有使用通用列表,因此当您调用get(i)时
在它上面,它返回一个对象
,并且没有getQuantity()对象上的
方法。尝试将您的列表
声明为列表
,或者声明您的RAM
、主板
、键盘
等的基类。首先,我们不了解您将哪些项添加到列表中。主板
、图形的超类是什么cs
,CPU
,监视器
,键盘
,鼠标
,等等
由于使用的是泛型列表
,而没有指定类型,因此它被视为原始类型
,因此,列表中的项隐式地是对象
,而对象
没有getQuantity()
方法
解决方案是创建一个项
抽象、序列化
d类,所有相关子类都必须继承该类,即键盘
、鼠标
、主板
等,以及这些项
的列表,即列表cat1
然后您的toString
将具有以下方法签名:
public String toString(List<? extends Item> cat1)
public String to String(List首先,我们不了解您要添加到列表中的项目。主板
,图形
,CPU
,监视器
,键盘
,鼠标
等的超类是什么
由于使用的是泛型列表
,而没有指定类型,因此它被视为原始类型
,因此,列表中的项隐式地是对象
,而对象
没有getQuantity()
方法
解决方案是创建一个项
抽象、序列化
d类,所有相关子类都必须继承该类,即键盘
、鼠标
、主板
等,以及这些项
的列表,即列表cat1
然后您的toString
将具有以下方法签名:
public String toString(List<? extends Item> cat1)
publicstringtostring(List您可以使用Product
作为通用通配符参数
public String toString(List<? extends Product> categoryList) {
publicstringtostring(List您可以使用Product
作为通用通配符参数
public String toString(List<? extends Product> categoryList) {
public String to String(List)你不想要一个列表,因为那将是一个目录列表。他想要目录中的东西的列表。但是,我甚至应该在@user113377中放入哪种类型的对象呢?你应该有一个基类,从中继承RAM
,主板
,键盘
等等(正如我在回答中暗示的那样)如果你不是这样做的话,你应该强烈地考虑它。你不想要一个<代码>列表>代码>这是一个目录列表。他想要一个目录中的东西的列表。但是,哪种类型的对象我甚至开始放在?@ USER 11377中,你应该有一个基类,从它的代码> RAM,<代码>主板< /代码>,键盘< /代码>继承(如我在答案中所暗示的)。如果你不是这样做的,你应该强烈地考虑它。你也要更新构造函数中的参数。你也要更新构造函数中的参数。