java报错symbol_java 报错cannot resolve symbol问题
連著好幾天遇到這個問題,今天終于解決了。
我是最近開始學的,所以問題不是出在maven的配置問題上,還沒用到這個插件。
比如 這樣報錯
剛剛找到了我的問題,是包的路徑引用不全,如上圖中我注釋掉的那一行,加上import static java.awt.BorderLayout.*;就可以了
我沒搞懂為什么要加static 然后查了一下:
import static(靜態導入)是JDK1.5中的新特性,一般我們導入一個類都用 import com.....ClassName;而靜態導入是這樣:import static com.....ClassName.*;這里多了個static,還有就是類名ClassName后面多了個 .* ,意思是導入這個類里的靜態方法。當然,也可以只導入某個靜態方法,只要把 .* 換成靜態方法名就行了。然后在這個類中,就可以直接用方法名調用靜態方法,而不必用ClassName.方法名的方式來調用。
大概理解一下,就是說,如果你在該部分沒有定義 ,比如f.setLayout(new BorderLayout),那么就可以用static方式直接用他的東西。
然后我是這樣寫的:
然后就報錯了。。。
好像只能import static ...? 了? 。我中間定義的f.setLayout(new BorderLayout(300,200));對圖形界面沒有影響。可能是因為我加了一句f.pack().
然后界面一直是這樣的:
這個問題我現在還很迷,再想想。。不行去問老師了。。
我用的這本書上的源代碼說:默認Frame使用BorderLayout布局管理器,但是我把源代碼抄過來會報錯,然后就是上面的問題。我把代碼給大家復制一下:
package test1;
import javax.swing.JButton;
import java.awt.*;
import static java.awt.BorderLayout.NORTH;//這里書上沒有,所以我報錯了
public class jisuanqi {
public static void main(String[] args){
//建立新窗體對象
Frame f = new Frame("計算器");
//f.setLayout(new BorderLayout(500,200));//書上沒有這句
Panel p1 = new Panel();
p1.add(new TextField(30));
p1.add(new JButton("求和"));
f.add(p1,NORTH);
Panel p2 = new Panel();
//設置Panel使用GridLayout布局管理器
p2.setLayout(new GridLayout(3,5,4,4));
String[] name = {"0","1","2","3","4","5","6","7","8","9","+","-","*","/","."};
for (int i=0;i
總結
以上是生活随笔為你收集整理的java报错symbol_java 报错cannot resolve symbol问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是Cocoa?
- 下一篇: Uptime-Kuma 一个花哨的开源监