Toke:Java“VariableDeclaratorId应该在这个令牌之后”

我正在研究一个有趣的小项目,这本质上是一个小战斗模拟器。我试图使用类似于 C ++ 中的 struct 的类,如使用它来创建对象 (在这种情况下,一个字符或“实体”,因为类被调用)。当试图从主函数调用所述类中的任何整数时,我得到标题中的错误。

class entity{
    public int health;
    public int accuracy;
    public int power;
    public int defense;
}

public class Tutorial {
    static Random rnd = new Random();
    entity player;
    player.health = 100;  // Issue on the health part
    player.accuracy = 19; // Issue on the accuracy part
    player.power = 15;    // Issue on the power part
    player.defense = 18;  // I think you get it by now...

我一直在寻找一段时间来找到一些解释,但没有一个我能找到解释错误的性质以及可能的修复我的情况。

4

编译器期望在行上声明一个变量

player.health = 100; 

,但正在查找作业。语句

Entity player = new Entity();
player.health = 100; 
player.accuracy = 19; 
player.power = 15; 
player.defense = 18; 

应该在代码块中,如方法或构造函数,而不是类块

2

Procedural code cannot be written directly in a class definition.代码导致语法错误,因为这样做是不合法的。

相反,将代码放在适当的方法initialization block中。(我确实认为初始化块在这里是合适的,所以我简单地展示了一个“工厂方法”。)

因此,考虑一种方法,如

// This is a member variable declaration, which is why it's OK
// to have a (static) method call provide the value.
// Alternatively, player could also be initialized in the constructor.
Entity player = makeMeAPlayer();
static Entity makeMeAPlayer() {
    // Create and return entity; the code is inside a method
    Entity player = new Entity();
    player.health = 100;
    // etc.
    return player;
}

(我还清理了类型以匹配 Java 命名约定-遵循套件!)

0

这是另一种方式遭受高度准确但不可怕的直观消息 VariableDeclaratorId。

 @PostMapping("/showCompany")
    public String processForm(@ModelAttribute("company") CompaniesDAO company, company_name, company_function) {

将产生:

Syntax error, insert "... VariableDeclaratorId" to complete FormalParameter

这是在告诉你需要像 String 或 int 这样的变量类型...

 @PostMapping("/showCompany")
    public String processForm(@ModelAttribute("company") CompaniesDAO company, String company_name, String company_function) {

原来 VariableDeclaratorId 是一个类

public class VariableDeclaratorId
extends Expression
implements prettyprint.PrettyPrintable

如果您阅读了类描述,并将其与错误消息一起使用,以确定您忘记定义变量类型,我印象深刻;我只是做了一个有根据的猜测。

0

这是因为你忘了添加 main 方法,

public class Tutorial {
    public static void main(String[] args) {
        static Random rnd = new Random();
        entity player;
        player.health = 100;  // Issue on the health part
        player.accuracy = 19; // Issue on the accuracy part
        player.power = 15;    // Issue on the power part
        player.defense = 18;  // I think you get it by now...
    }
}

class entity{
    public int health;
    public int accuracy;
    public int power;
    public int defense;
}

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(388)
C2h8n2燃烧化学式:化学式解析器 C++(chemical formula naming calculator)
上一篇
Call打电话用法:在Unity中打电话(a call to unity)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(55条)