Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t查找对象中定义的符号(方法)';s级_Java_Oop_Object_Methods_Getter - Fatal编程技术网

Java Can';t查找对象中定义的符号(方法)';s级

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,

这是一个类的代码,该类使用ArrayList为计算机零件店的目录建模。所有包含的对象(产品)都已定义,包括获取和设置数量变量的方法

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()中


假设summing
Catalog
是包含此方法的类,并且在列表中严格拥有此类型的所有对象

您没有使用泛化列表,因此当您在其上调用
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,<代码>主板< /代码>,键盘< /代码>继承(如我在答案中所暗示的)。如果你不是这样做的,你应该强烈地考虑它。你也要更新构造函数中的参数。你也要更新构造函数中的参数。