java 报错cannot resolve symbol问题

本文记录了作者在学习Java过程中遇到的'cannot resolve symbol'问题的解决过程。通过静态导入(import static)的方式解决了由于包路径引用不全导致的编译错误。解释了静态导入的作用,即可以直接使用类的静态方法,而不需要类名前缀。最后展示了错误代码及修正后的代码,指出在图形界面布局设置中的一些困惑。
部署运行你感兴趣的模型镜像

连着好几天遇到这个问题,今天终于解决了。

我是最近开始学的,所以问题不是出在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<name.length;i++){
                p2.add(new Button(name[i]));
            }
            f.add(p2);
            f.pack();
            f.setVisible(true);
        }
    }

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### Android Studio 中 "Cannot resolve symbol" 错误解决方案 当遇到 `Cannot resolve symbol` 的错误时,这通常意味着 IDE 无法解析特定的符号或库。尽管编译可能正常工作,但在编辑器中会看到红色波浪线并伴有此消息。 #### 检查依赖项配置 确保项目的 `build.gradle` 文件中的依赖项已正确定义并且版本兼容。对于 Java 项目特别是使用 ViewModel 组件的情况,应确认 Gradle 文件内的依赖声明无误[^2]: ```groovy dependencies { implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0' } ``` #### 同步项目与 Gradle 文件 尝试通过点击菜单栏上的 **Sync Now** 或者手动执行同步操作来刷新项目结构。这样可以确保所有的模块都被正确加载,并且最新的更改被应用到环境中[^1]。 #### 清理构建缓存 有时候旧的构建数据可能会引起冲突。可以通过选择 **Build -> Clean Project** 来清理整个工程的构建产物。之后再做一次完整的重建 (**Rebuild**) 可能有助于解决问题[^3]。 #### 更新索引和重置设置 如果上述方法均未生效,考虑让 Android Studio 重新建立其内部索引来帮助它更好地理解代码库。关闭当前打开的所有文件夹窗口后,在命令行工具里运行以下指令: ```bash rm -rf .idea/ rm -rf *.iml ``` 接着再次启动 Android Studio 并导入现有源码目录作为新项目处理。 #### 插件状态核查 检查是否有任何插件处于禁用状态,尤其是那些涉及 Kotlin 支持或其他开发辅助功能的部分。启用必要的官方支持插件可以帮助改善识别情况。 #### 调整 SDK 和 NDK 设置 验证所使用的 Android SDK 版本以及 NDK (如果有) 是否是最新的稳定版次;不匹配的目标 API 级别也可能引发此类问题。前往 **File > Settings > Appearance & Behavior > System Settings > Android SDK** 进行相应调整。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值