Java Can';I don’我不能编译这个,我做错了什么?

Java Can';I don’我不能编译这个,我做错了什么?,java,arrays,Java,Arrays,好的,我可以看到第33行的“setUniqueType”和第50行的“ItemDetails”是需要更正的,但是我不知道它有什么问题以及如何修复。请帮忙,这样我就可以开始我的计划了 MAIN package inventory4; import java.util.Scanner; import java.util.Arrays; import javax.swing.JOptionPane; public class RunApp { public static void main(S

好的,我可以看到第33行的“setUniqueType”和第50行的“ItemDetails”是需要更正的,但是我不知道它有什么问题以及如何修复。请帮忙,这样我就可以开始我的计划了

MAIN

package inventory4;
import java.util.Scanner;
import java.util.Arrays; 
import javax.swing.JOptionPane; 

public class RunApp
{
 public static void main(String[] args)
   {

  Scanner input = new Scanner(System.in);

  ItemDetails theItem = new ItemDetails();

  int number;
  String Name = "";
  String Type = "";

  String sNumber = JOptionPane.showInputDialog(null,"How many items are to be put into inventory count?:  ");
  number = Integer.parseInt(sNumber);

  ItemDetails[] inv = new ItemDetails[number];

  for (int count = 0; count < inv.length; ++count)
  {
     Name = JOptionPane.showInputDialog(null,"What is item " + (count + 1) + "'s name?");
     theItem.setName(Name);


     Type = JOptionPane.showInputDialog(null,"Enter " + Name + "'s product type");

     theItem.setUniqueType(Type);


     String spNumber = JOptionPane.showInputDialog(null,"Enter " + Name + "'s product number");
     double pNumber = Double.parseDouble(spNumber);
     theItem.setpNumber(pNumber);

     String sUnits = JOptionPane.showInputDialog(null,"How many " + Name + "s are there in inventory?");

     double Units = Double.parseDouble(sUnits);
     theItem.setUnits(Units);

     String sPrice = JOptionPane.showInputDialog(null,Name + "'s cost");
     double Price = Double.parseDouble(sPrice);
     theItem.setPrice(Price);


      inv[count] = new ItemDetails(Name, Price, Units, pNumber, Type);
  }



  for (int i = 0; i < inv.length; ++i)
  {
     JOptionPane.showMessageDialog(null, "Product Name" + inv[i].getName());

     JOptionPane.showMessageDialog(null, "Product Type" +  inv[i].getUniqueType());

     JOptionPane.showMessageDialog(null, "Product Number" + inv[i].getpNumber());

     JOptionPane.showMessageDialog(null, "Amount of Units in Stock" + inv[i].getUnits());

     JOptionPane.showMessageDialog(null, "Price per Unit" + inv[i].getPrice());

     JOptionPane.showMessageDialog(null, String.format("Total cost for %s in stock: $%.2f", inv[i].getName(), inv[i].calculateTotalPrice()));

     JOptionPane.showMessageDialog(null,String.format("Restocking fee for %s is $%.2f", inv[i].getName(), inv[i].calculateRestock()));

     String combinedData = inv[i].toString();

     if(i == (inv.length -1)){

        String lastItem = String.format("\nTotal Cost for all items entered: $%.2f\n", Items.getCombinedCost(inv));

        combinedData = combinedData + lastItem; 
        JOptionPane.showMessageDialog(null, combinedData);

     }else{
        JOptionPane.showMessageDialog(null, combinedData);
     }


      } //end for


   } //end main


} //end class
编译错误:

RunApp.java:31: cannot find symbol
symbol  : method setUniqueType(java.lang.String)
location: class ItemDetails
     theItem.setUniqueType(Type);
            ^
RunApp.java:48: cannot find symbol
symbol  : constructor ItemDetails(java.lang.String,double,double,double,java.lan
g.String)
location: class ItemDetails
      inv[count] = new ItemDetails(Name, Price, Units, pNumber, Type);
                   ^
2 errors
  • ItemDetails类没有setUniqueType方法。你应该加一个
  • 您在:48使用的构造函数是“String,double,double,double,String”,但您的构造函数实际上只是“String-double-double-double”,可以删除
    类型
    ,或者在项目构造函数的末尾添加一个字符串参数,或者使用五个参数创建一个ItemDEtails构造函数
  • ItemDetails没有与该参数匹配的构造函数。如果要链接构造函数,请在ItemDetails中声明它
  • 链接构造函数:

    public ItemDetails(String productName, double productNumber, double unitsInStock, double unitPrice
        super(productName,productNumber,unitsInStock,unitPrice);
    }
    

    关于ItemDetails:看起来你的ItemDetails构造函数,从Items继承而来,只需要4个参数,你要传递5个参数。

    当你说有错误时,请发布你的
    javac
    所说的确切内容。“请帮帮忙,这样我就可以开始我的程序了…”对不起,我知道已经晚了,你很累,很沮丧,你最不需要的就是一些混蛋(我)在网上取笑你,但是。。。我认为搬进来看节目是个坏主意。信息技术它永远不会成功……给初学者的教训是:错误消息告诉我们问题的原因。通常很多。当你理解了信息,从而也理解了原因,那么解决方案就应该不言自明了。不理解它们并不意味着你可以忽略它们。请始终在问题中包含任何错误消息。通过这种方式,您可以用外行术语解释错误消息,这样您就可以了解它们,从而了解问题的原因,并最终看到解决方案。当你不理解一个中文短语时,你在寻求帮助时也不会忽略它,是吗?Class
    ItemDetails
    没有方法
    setUniqueType
    。另外,
    ItemDetails
    也没有接受参数
    名称、价格、单位、pNumber、,键入
    @lost我添加了如何链接构造函数。实际上,您已经在为默认构造函数执行此操作。
    RunApp.java:31: cannot find symbol
    symbol  : method setUniqueType(java.lang.String)
    location: class ItemDetails
         theItem.setUniqueType(Type);
                ^
    RunApp.java:48: cannot find symbol
    symbol  : constructor ItemDetails(java.lang.String,double,double,double,java.lan
    g.String)
    location: class ItemDetails
          inv[count] = new ItemDetails(Name, Price, Units, pNumber, Type);
                       ^
    2 errors
    
    public ItemDetails(String productName, double productNumber, double unitsInStock, double unitPrice
        super(productName,productNumber,unitsInStock,unitPrice);
    }