Java 将番石榴23.0导入Eclipse光子4.8.0
我正在学习国际象棋教程,并试图在Eclipse4.8.0的项目中添加Guava23.0JAR。(按照教程中的要求) 但是,在添加从以下位置下载的Guava jar文件后,我遇到一个导入无法解决的错误: 错误在以下行中:Java 将番石榴23.0导入Eclipse光子4.8.0,java,eclipse,jar,guava,Java,Eclipse,Jar,Guava,我正在学习国际象棋教程,并试图在Eclipse4.8.0的项目中添加Guava23.0JAR。(按照教程中的要求) 但是,在添加从以下位置下载的Guava jar文件后,我遇到一个导入无法解决的错误: 错误在以下行中: import com.google.common.collect.ImmutableMap; 我试过两个最受欢迎的答案,但仍然遇到同样的问题 我是否遗漏了一个步骤或添加了错误的Guava jar文件?有人好心地告诉我这件事 package com.chess.engine.bo
import com.google.common.collect.ImmutableMap;
我试过两个最受欢迎的答案,但仍然遇到同样的问题
我是否遗漏了一个步骤或添加了错误的Guava jar文件?有人好心地告诉我这件事
package com.chess.engine.board;
import java.util.HashMap;
import java.util.Map;
import com.chess.engine.pieces.Piece;
import com.google.common.collect.ImmutableMap; //error underline at com.google
public abstract class Tile {
protected final int tileCoordinate;
private static final Map<Integer, EmptyTile> EMPTY_TILES = createAllPossibleEmptyTiles();
private static Map<Integer, EmptyTile> createAllPossibleEmptyTiles() {
final Map<Integer, EmptyTile> emptyTileMap = new HashMap<>();
for(int i = 0; i < 64; i++) {
emptyTileMap.put(i, new EmptyTile(i));
}
return ImmutableMap.copyOf(emptyTileMap);
}
Tile(int tileCoordinate){
this.tileCoordinate = tileCoordinate;
}
public abstract boolean isTileOccupied();
public abstract Piece getPiece();
public static final class EmptyTile extends Tile{
EmptyTile(int coordinate){
super(coordinate);
}
@Override
public boolean isTileOccupied() {
return false;
}
@Override
public Piece getPiece() {
return null;
}
}
public static final class OccupiedTile extends Tile{
private final Piece pieceOnTile;
OccupiedTile(int tileCoordinate, Piece pieceOnTile){
super(tileCoordinate);
this.pieceOnTile = pieceOnTile;
}
@Override
public boolean isTileOccupied() {
return true;
}
@Override
public Piece getPiece() {
return this.pieceOnTile;
}
}
}
包com.chess.engine.board;
导入java.util.HashMap;
导入java.util.Map;
导入com.chess.engine.pieces.Piece;
导入com.google.common.collect.ImmutableMap//com.google上的下划线错误
公共抽象类平铺{
受保护的最终整数坐标;
私有静态最终映射空_TILES=createAllPossibleEmptyTiles();
私有静态映射createAllPossibleEmptyTiles(){
final Map emptyTileMap=new HashMap();
对于(int i=0;i<64;i++){
put(i,new-EmptyTile(i));
}
返回ImmutableMap.copyOf(EmptyTimeMap);
}
平铺(整块平铺坐标){
this.tileCoordinate=tileCoordinate;
}
公共抽象布尔值()被占用;
公共抽象片段getPiece();
公共静态最终类清空扩展平铺{
清空文件(整数坐标){
超级(坐标);
}
@凌驾
公共布尔值(){
返回false;
}
@凌驾
公共件getPiece(){
返回null;
}
}
公共静态最终类占用文件扩展了平铺{
私人最终作品;
占用文件(int TileCoordination,Piece pieceOnTile){
超级(TileCoordination);
this.pieceOnTile=pieceOnTile;
}
@凌驾
公共布尔值(){
返回true;
}
@凌驾
公共件getPiece(){
返回此.pieceOnTile;
}
}
}
以上评论中@howlger提供的解决方案。我删除了默认包中的module info.java
,解决了错误。如果默认包中有module info.java
,请删除此文件。否则,请在问题中添加Project>Properties:Java构建路径选项卡库的屏幕截图。@howlger我删除了模块info.Java
,错误得到解决。非常感谢你。