java无法解析符号Arraylist
时间: 2023-08-13 07:07:33 浏览: 154
如果Java编译器无法解析符号ArrayList,那么很可能是因为你没有正确导入java.util包,因为ArrayList类位于该包中。你可以在代码的开头添加以下导入语句来解决这个问题:
```
import java.util.ArrayList;
```
如果你已经正确导入了java.util包但仍然无法解析符号ArrayList,则可能是由于以下原因之一:
1. 你的Java编译器版本太低,不支持ArrayList类。请确保你正在使用Java SE 1.2或更高版本。
2. 你的代码中有语法错误,导致编译器无法正确解析符号ArrayList。请检查你的代码中是否有任何拼写错误、缺失的分号或括号等语法问题。
相关问题
Collection c1 = new ArrayList();无法解析符号 'ArrayList'
这个错误通常发生在没有正确导入 Java 类的情况下。请确保在文件的开头使用了正确的导入语句,例如:
```java
import java.util.ArrayList;
import java.util.Collection;
public class MyClass {
public static void main(String[] args) {
Collection c1 = new ArrayList();
// rest of the code
}
}
```
如果仍然出现类似的错误,请确保您的项目中已经包含了相关的 JAR 文件或依赖项。
java 手写词法分析器
以下是一个用Java编写的手写词法分析器的示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Lexer {
private static final char EOF = (char) -1;
private static final char EOL = '\n';
private static final String OPERATORS = "+-*/()";
private static final String DIGITS = "0123456789";
private BufferedReader reader;
private char currentChar;
public Lexer(String fileName) throws IOException {
reader = new BufferedReader(new FileReader(fileName));
currentChar = (char) reader.read();
}
public List<Token> tokenize() throws IOException {
List<Token> tokens = new ArrayList<>();
while (currentChar != EOF) {
if (currentChar == EOL) {
consume();
continue;
}
if (Character.isWhitespace(currentChar)) {
consume();
continue;
}
if (OPERATORS.indexOf(currentChar) != -1) {
tokens.add(new Token(Token.Type.OPERATOR, Character.toString(currentChar)));
consume();
continue;
}
if (DIGITS.indexOf(currentChar) != -1) {
StringBuilder sb = new StringBuilder();
while (DIGITS.indexOf(currentChar) != -1) {
sb.append(currentChar);
consume();
}
tokens.add(new Token(Token.Type.NUMBER, sb.toString()));
continue;
}
throw new RuntimeException("Invalid character: " + currentChar);
}
return tokens;
}
private void consume() throws IOException {
currentChar = (char) reader.read();
}
}
class Token {
enum Type {
OPERATOR, NUMBER
}
private Type type;
private String value;
public Token(Type type, String value) {
this.type = type;
this.value = value;
}
public Type getType() {
return type;
}
public String getValue() {
return value;
}
}
```
这个词法分析器可以读取一个文件并将其分解为令牌。它支持四种类型的令牌:运算符、数字、换行符和文件结束符。它使用一个缓冲区来存储当前正在解析的符号,并使用一个符号类型的数组来存储确定模型的符号。