今天使用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