Java中如何调用另一个类的方法
所以,我有这个类:
public class Product {
private String name, id, info ;
private int quantity;
public Product(String newName, String newID, String newInfo, Integer newQuantity){
setName(newName);
setID(newID);
setPrice(newInfo);
setQuantity(newQuantity);}
public void setName(String name) {
this.name = name; }
public void setID(String id) {
this.id = id; }
public void setPrice(String info) {
this.info = info; }
public void setQuantity(Integer quantity) {
this.quantity = quantity; }
public String getID( ) {
return id; }
public String getName( ) {
return name; }
public String getInfo( ) {
return info; }
public int getQuantity( ) {
return quantity; }
在另一个类中我有这个:
public class Invoice implements Group<Product> {
private HashMap<String, Product> prod = new HashMap<String, Product>( );
public Invoice(){ }
public void addProd(Product a) {
prod.put(??getID()??,new Product(??));
}
}
如果这个数据是用户生成的而不是我生成的,我会使用 getID() 方法,对吗?
那么在我的类发票中,如何使用方法 getID()
,以便我可以在 HashMap 中的键值参数中使用它?还有一种方法可以在不创建新类的情况下将 3 个值(名称信息 quan)添加到哈希映射中?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我看到您获得了
Product
对象,其中引用“a
”作为addProd
方法的参数。只需使用 a.getID() 即可获取 id。它应该看起来像:
我不明白你问题的第二部分。我认为你的 Product 对象中已经有 3 个值,并且你将 Product 对象放入了 Map 中,那么为什么你需要另一种方式呢?
I see that you get
Product
object with ref "a
" as parameter to youraddProd
method.And you can get id by just using a.getID(). It should look as:
I didn't understand second part of your question.. I think you already have 3 values in your Product object and you put Product object to Map, So why do you require another way ?
您的类 Product 无法编译,因为您的构造函数中有名称 Item。构造函数名称必须与类名称匹配。因此将其更改为产品。这同样适用于发票与购物车。构造函数和类名称必须匹配。
根据您的评论,您希望向地图添加四个产品值。关键是产品本身的价值之一。试试这个:
映射只能将单个值映射到单个键,因此您必须有某种容器来存放您希望整理成一个值的值。这可以是一个对象(产品),也可以使用一个集合(例如列表)。我强烈推荐前者。
Your class Product does not compile, because you have the name Item in your constructor. The constructor name must match the class name. So change that to Product. The same applies to Invoice vs ShoppingCart. Constructor and Class names must match.
As per your comment, you'd like to add four product values to a Map. The key being one of the values of the product itself. Try this:
Maps can only map a single value to a single key, so you must have some sort of container for the values you wish to collate into one value. This can be an object (Product) or you could use a collection (e.g. List). I strongly recommend the former.
对于您关于在映射中放入 3 个值的问题,我认为没有一种方法可以让您在不创建类的情况下将 3 个值放入一个键中。另一种方法是存储
Map>
假设您的 3 个值是 String 类型,或者Map>
代码>.For your question about putting 3 values in your map, I don't think there's a way for you to put 3 values into one key without creating a class. An alternative is to store a
Map<String, List<String>>
assuming your 3 values are type String, or,Map<String, Map<String, String>>
.