今天使用vscode 编写java代码作测试时候,发现这个问题,大概总结一下。java
目录结构测试
bao -> Point.javaui
test.javathis
package bao; public class Point<T> {// 此处能够随便写标识符号 private T x; private T y; public void setX(T x) {// 做为参数 this.x = x; } public void setY(T y) { this.y = y; } public T getX() {// 做为返回值 return this.x; } public T getY() { return this.y; } };
import bao.Point; public class test { public static void main(String[] args) { //IntegerPoint使用 Point<Integer> p = new Point<Integer>(); p.setX(new Integer(100)) ; System.out.println(p.getX()); //FloatPoint使用 // Point<Float> p = new Point<Float>(); // p.setX(new Float(100.12f)); // System.out.println(p.getX()); } }
编译报错:The declared package does not match the expected package bao Javaspa
大概的缘由是编译器在bao这个包名下找不到Point.java, 因此须要在vscode中把根目录加入到java的sourcepathdebug
使得编译器在寻找Point.java时,以项目根目录做为基准寻找路径,这样就编译经过了。code
另外还有, 有的时候你在主方法里run或者debug的时候,编译器虽然能输出最后结果,但仍是会报"Build failed xxxxx",我查了下官网,说是blog
而后一看,原来我如今的项目路径下包含许多子项目,只要有一个子项目的文件存在语法错误,我这个项目编译时就会报“build failed”,因此之后用vscode详见项目最好仍是以每一个项目做为根目录来建。get