编译Java类,'和'<标识符>类型的非法开始预期'错误

Compiling java class, #39;illegal start of type#39; and #39;lt;identifiergt; expected#39; errors(编译Java类,#39;和#39;lt;标识符gt;类型的非法开始预期#39;错误)

本文介绍了编译Java类,'和'<标识符>类型的非法开始预期'错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在练习使用Java的构造函数,下面是我试图编译的类:

import java.util.*;
import java.lang.*;
public class mob{

    public Map enemies = new HashMap<String, Point>();
    public Point pn = new Point(1, 1);
    enemies.put("Peon", pn);
    public Point gn = new Point(5, 2);
    enemies.put("Goblin", gn);
    public Point tl = new Point(25, 8);
    enemies.put("Troll", tl);
    public Point oc = new Point(13, 5);
    enemies.put("Orc", oc);
    public String name;
    public int hp;
    public int dmg;

    public mob(String type){
      name=type;
      hp=enemies.get(type).getX();
      dmg=enemies.get(type).getY();
    }

    public mob(){
      name="Peon";
      hp=enemies.get("Peon").getX();
      dmg=enemies.get("Peon").getY();

    }

    void setName(String name){
            this.name=name;
    }


    public static void main(String[] args) {

      Scanner scan = new Scanner(System.in());
      System.out.System.out.println("Enter mob type:");
      String type = scan.nextln();
      if(mob.containsKey(type)){
        mob mob1 = new mob(type);
      }
      else{
        mob mob1 = new mob();
        mob1.setName(type);
      }

      System.out.println("You just spawned a "+mob1.name+", it has "+mob1.hp+" hp and "+mob1.dmg+" dmg!");
    }
}

Main方法的目的是从控制台获取一些输入,并根据输入使用来自地图的数据("敌人")或默认的暴徒创建特定的暴徒。但当我试图在命令提示符中编译它时,我在所有entemes.put()方法中都得到了错误,即:

mob.java:7: error: <identifier> expected
    enemies.put("Peon", pn);
               ^
mob.java:7: error: illegal start of type
    enemies.put("Peon", pn);
               ^
mob.java:9: error: <identifier> expected
    enemies.put("Goblin", gn);
               ^

查看了类似的问题并尝试修复问题(因此出现了所有公开声明),但无法解决此问题...

使用Java和Java是v11.0.2

推荐答案

菱形用于告诉编译器有关泛型类的信息。但是,语法应为:

 public Map<String,Point> enemies = new HashMap<>();

和默认the enemies.put("Peon", pn);命令必须在构造函数内执行。

这篇关于编译Java类,&#39;和&#39;&lt;标识符&gt;类型的非法开始预期&#39;错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:编译Java类,&#39;和&#39;&lt;标识符&gt;类型的非法开始预期&#39;错误