微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为子类创建对象时,如何从 hashMap 实现属性?

如何解决为子类创建对象时,如何从 hashMap 实现属性?

我想做的基本上是迭代我的流派并使用我的 hashMap 作为查找表,然后在创建对象时选择流派。我不知道接下来我需要做什么,因为当我已经有了一个新的构造函数时,它总是给我错误提示

import java.util.HashMap;
import java.util.Scanner;

public class disc {
   private String title;
   private String releaseDate;
   HashMap<Integer,String> genre = new HashMap<Integer,String>();
   Scanner mainInput = new Scanner(system.in);

    public disc(String releaseDate,String title,HashMap<Integer,String> genre) {
        this.title = title;
        this.releaseDate = releaseDate;
        this.genre = genre;
        this.genre.put(1,"Horror");
        this.genre.put(2,"Action");
        this.genre.put(3,"Hip-Hop");
        this.genre.put(4,"Pop");
        this.genre.put(5,"Jazz");
        this.genre.put(6,"Thriller");
    }

子类:

import java.util.HashMap;

public class game extends disc{
    private int PEGIrating;
    private String Platform;
   public game(int PEGIrating,String Platform,String releaseDate,String> genre){
        super(releaseDate,title,genre);
        this.PEGIrating = PEGIrating;
        this.Platform = Platform;

        game g = new game(18,"PS5","Evil Within","Feb 2018",1);

    }
}

解决方法

您正在尝试在 game() 构造函数中初始化游戏对象...

public game(int PEGIRating,String Platform,String title,String releaseDate,HashMap<Integer,String> genre){
    super(releaseDate,title,genre);
    this.PEGIRating = PEGIRating;
    this.Platform = Platform;

    // >>>  game g = new game(18,"PS5","Evil Within","Feb 2018",1); <<<<

}
,

如上所述,您正在游戏构造函数中初始化游戏对象,该对象将编译但可能会导致运行时问题。

为此,您将一个 int 数据类型传递到游戏构造函数的最后一个参数中,而不是传递一个 HashMap ,正如您在构造函数签名中所指定的那样。要么创建一个接受确切参数列表但最后一个数据类型为 int 的构造函数,要么传递一个 HashMap 作为最后一个参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。