Java I';我得到<;标识符>;预期误差
在一个类中,我有一个方法:Java I';我得到<;标识符>;预期误差,java,Java,在一个类中,我有一个方法: public void initalizeElements() { //does some stuff } 因此,在另一节课上,我尝试: Molecules mol = new Molecules(); mol.initalizeElements(); 我在第二行得到一个错误,说“预期” 我觉得这真的很容易,我只是浏览了一些简单的东西,但我还是不明白。在别人说之前,是的,我看了数百个其他问题,这些问题和我的问题一样。但他们似乎都没有帮助我 完整代码: packa
public void initalizeElements()
{
//does some stuff
}
因此,在另一节课上,我尝试:
Molecules mol = new Molecules();
mol.initalizeElements();
我在第二行得到一个错误,说“预期”
我觉得这真的很容易,我只是浏览了一些简单的东西,但我还是不明白。在别人说之前,是的,我看了数百个其他问题,这些问题和我的问题一样。但他们似乎都没有帮助我
完整代码:
package mymolecules;
public class Molecules
{
public String[] elements = new String[35];
private int lazyCounter = 0;
public void initalizeElements()
{
elements[lazyCounter] = "H";
lazyCounter += 1;
elements[lazyCounter] = "He";
lazyCounter += 1;
elements[lazyCounter] = "Li";
lazyCounter += 1;
elements[lazyCounter] = "Be";
lazyCounter += 1;
elements[lazyCounter] = "B";
lazyCounter += 1;
elements[lazyCounter] = "C";
lazyCounter += 1;
elements[lazyCounter] = "N";
lazyCounter += 1;
elements[lazyCounter] = "O";
lazyCounter += 1;
elements[lazyCounter] = "F";
lazyCounter += 1;
elements[lazyCounter] = "Ne";
lazyCounter += 1;
elements[lazyCounter] = "Na";
lazyCounter += 1;
elements[lazyCounter] = "Mg";
lazyCounter += 1;
elements[lazyCounter] = "Al";
lazyCounter += 1;
elements[lazyCounter] = "Si";
lazyCounter += 1;
elements[lazyCounter] = "P";
....
....
//on so on for the hole periodic table
}
}
及
在Parser类中,有两行代码
Molecules mol = new Molecules();
mol.initalizeElements();
在方法外部,这通常必须发生在某个构造函数中,将其移动到方法内部
像这样初始化对象是不好的做法
尝试更优雅的方式,如:
public class Parser {
private String conString = "";
private int conInt = 0;
private int indexer = 0;
private int lazyCounter = 0;
private String sortList = "";
private int sortCount = 0;
private Molecules mol;
private String formula;
public Parser(String Formula){
this.formula = Formula;
mol = new Molecules();
mol.initalizeElements();
}
无法在用于定义变量的类的节中开始调用方法。将这些移动到构造函数:
mol = new Molecules();
mol.initalizeElements();
在定义变量部分仅保留mol的声明,其位置如下:
private Molecules mol;
在此级别上,只允许使用字段/方法/构造函数/类声明/初始值设定项块
Molecules mol = new Molecules();
{
mol.initalizeElements();
}
上面是一个初始化程序块。它的用途主要是填充地图。更常见的是将方法调用放在构造函数中
public Parser(String Formula) {
mol.initalizeElements();
}
这个片段看起来不错。你能分享更多的内容吗?是
mol.initializeelements()代码>在方法中?@Mureinik sure 1sec@Mureink上传完整code@Reimeus上传了完整的代码供您查看
public Parser(String Formula) {
mol.initalizeElements();
}