C# 入坑JAVA 潜规则 大小写敏感文件名和类名 枚举等 入门系列2

java 项目结构 文件说明 潜规则 java入门-CSDN博客

Java 对大小写敏感  如文件名和类名。

D:\now\scx\scx-cloud\scx-cloud\scx-module-system\scx-module-system-biz\src\main\java\com\scm\scx\module\system\controller\app\compublic\compublicController.java:29:8 java: 类 CompublicController 是

这个错误信息指出你的Java类 CompublicController 被声明为公共的(public),但它没有被放置在一个与类名完全匹配的文件中。在Java中,如果一个类被声明为public,那么它必须被放置在一个与类名完全相同的文件中(包括大小写)。

你的类名是 CompublicController,但是你的文件名是 compublicController.java。注意这里的大小写不一致。Java是大小写敏感的,所以文件名 compublicController.java 和类名 CompublicController 被视为不同的。

为了解决这个问题,你应该将文件名从 compublicController.java 改为 CompublicController.java。这样,文件名就与类名完全匹配了。

修改文件名的步骤如下:

  1. 在你的文件管理器或IDE(如IntelliJ IDEA, Eclipse等)中,找到文件 compublicController.java
  2. 右键点击该文件,选择“重命名”(Rename)选项。
  3. 将文件名改为 CompublicController.java
  4. 保存文件。

完成这些步骤后,你的Java类应该能够正确编译,不再显示这个错误。如果你使用的是IDE,它可能会自动更新项目视图以反映这一更改。如果你使用的是文本编辑器或命令行工具,确保在编译时指定正确的文件名。

JAVA 枚举写法

package com.scm.scx.module.product.enums.comment;import com.scm.scx.framework.common.core.IntArrayValuable;
import lombok.AllArgsConstructor;
import lombok.Getter;import java.util.Arrays;/*** 商品修改价格的审批状态枚举** @author cao919 */
@Getter
@AllArgsConstructor
public enum ProductSkuPriceRecordAuditStatusEnum implements IntArrayValuable {NONE(2, "待审核"),APPROVE(4, "审批通过"),REJECT(32, "审批不通过"),;public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ProductSkuPriceRecordAuditStatusEnum::getStatus).toArray();/*** 审批状态*/private final Integer status;/*** 状态名*/private final String name;@Overridepublic int[] array() {return ARRAYS;}}

使用

 if(ProductSkuPriceRecordAuditStatusEnum.APPROVE.getStatus()==updateReqVO.getAuditStatus()||ProductSkuPriceRecordAuditStatusEnum.REJECT.getStatus()==updateReqVO.getAuditStatus()){ }

java 判断Integer aaa 不为空

示例 1:直接判断

Integer aaa = new Integer(10); // 或者 Integer aaa = 10; (自动装箱)  if (aaa != null) {  // aaa 不为空,可以进行一些操作  System.out.println("aaa 的值是: " + aaa);  
} else {  // aaa 为空  System.out.println("aaa 是空的");  
}

示例 2:使用Optional(Java 8及以上)

虽然直接判断 Integer 是否为 null 是最常见和直接的方法,但在Java 8中引入了 Optional 类,它提供了一种更好的方式来处理可能为 null 的情况。你可以将可能为 null 的 Integer 封装在 Optional 中,然后使用它的方法来进行非空检查或其他操作。

import java.util.Optional;  public class Main {  public static void main(String[] args) {  Integer aaa = new Integer(10); // 或者 Integer aaa = 10;  Optional<Integer> optionalAaa = Optional.ofNullable(aaa);  optionalAaa.ifPresent(value -> System.out.println("aaa 的值是: " + value));  // 或者  if (optionalAaa.isPresent()) {  System.out.println("aaa 的值是: " + optionalAaa.get());  } else {  System.out.println("aaa 是空的");  }  }  
}

注意

  • 使用 Optional 主要是为了编写更清晰、更易读的代码,特别是在处理可能为 null 的返回值时。
  • 但在简单的 null 检查中,直接使用 if (aaa != null) 通常是更直接和高效的方法。
  • 自动装箱和拆箱(autoboxing and unboxing)是Java 5及以上版本中引入的特性,允许基本数据类型与其对应的包装类(如 int 与 Integer)之间自动转换。但频繁地使用自动装箱和拆箱可能会影响性能,因为它们涉及到额外的对象创建和销毁。

循环依赖

java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [scx-module-crm-biz,scx-module-crm-api] are excluded from annotation processing

使用接口调用

java long temp 变string

 初始化数据 直接数字后面加L

Long tempLong=0L;

在Java中,将long类型的变量转换为String类型,有几种常见的方法。以下是几种实现方式:

1. 使用String.valueOf()方法

long temp = 123456789L;  
String strTemp = String.valueOf(temp);  
System.out.println(strTemp);

2.使用Long.toString()方法

long temp = 123456789L;  
String strTemp = Long.toString(temp);  
System.out.println(strTemp);

3. 使用字符串连接(不推荐,仅作为了解)

虽然这不是转换longString的最佳或推荐方式,但你可以通过将long与空字符串连接来实现转换。不过,这种方法可能会因为隐式类型转换和字符串连接的开销而在性能上不如前两种方法。

long temp = 123456789L;  
String strTemp = "" + temp;  
System.out.println(strTemp);

4. 使用String.format()方法

如果你需要更复杂的格式化(比如指定小数点后的位数,尽管这对于long转换为String不是必需的),你可以使用String.format()方法。对于简单的转换,你可以这样使用:

long temp = 123456789L;  
String strTemp = String.format("%d", temp);  
System.out.println(strTemp);

在这里,%d是十进制整数的格式说明符。

总结

对于大多数用途,String.valueOf(long l)Long.toString(long l)是转换longString的首选方法,因为它们既清晰又高效。字符串连接方法("" + longValue)虽然简单,但在性能敏感的应用中可能不是最佳选择。String.format()方法提供了更多的格式化选项,但在简单的类型转换中可能稍显繁琐。

JAVA 没有 out 和ref

Java中的out和ref引用参数
在Java中,方法的参数可以是值类型(如int、float等)或引用类型(如对象)。对于值类型,方法的参数传递的是该值的一个副本,而对于引用类型,方法的参数传递的是引用的一个副本。这意味着,在方法内部修改值类型的参数不会影响到原始值,而修改引用类型的参数可能会影响到原始对象。

然而,Java并不支持像C#中的out和ref关键字那样直接传递参数的引用。但是,我们可以通过其他方式实现类似的效果。

out引用参数的实现
在Java中,如果我们想要模拟C#中的out参数,可以通过定义一个包含要返回的值的类来实现。
 

public class OutParam<T> {private T value;public OutParam(T value) {this.value = value;}public T getValue() {return value;}public void setValue(T value) {this.value = value;}
}

然后,在方法中,我们可以将该类的实例作为参数,并在方法内部设置要返回的值。

public void updateValue(OutParam<Integer> outParam) {outParam.setValue(42);
}public static void main(String[] args) {OutParam<Integer> outParam = new OutParam<>(0);updateValue(outParam);System.out.println(outParam.getValue());  // 输出:42
}

通过这种方式,我们可以在方法内部修改参数的值,然后在方法外部获取到修改后的值。

ref引用参数的实现
与out参数类似,如果我们想要模拟C#中的ref参数,可以通过定义一个包含要传递的值的类来实现。

public class RefParam<T> {private T value;public RefParam(T value) {this.value = value;}public T getValue() {return value;}public void setValue(T value) {this.value = value;}
} 

然后,在方法中,我们可以将该类的实例作为参数,并在方法内部修改该实例的值。

public void updateValue(RefParam<Integer> refParam) {refParam.setValue(42);
}public static void main(String[] args) {RefParam<Integer> refParam = new RefParam<>(0);updateValue(refParam);System.out.println(refParam.getValue());  // 输出:42
} 

通过这种方式,我们可以在方法内部修改参数的值,并且这种修改会在方法外部生效。

总结
虽然Java没有像C#中的out和ref关键字那样直接支持引用参数,但我们可以通过定义包含要返回或传递值的类来模拟这种功能。使用out参数,我们可以在方法内部设置要返回的值,并在方法外部获取到该值。使用ref参数,我们可以在方法内部修改参数的值,并使这种修改在方法外部生效。

尽管这种实现方式略显复杂,但它提供了一种在Java中处理引用参数的方法。
 

java 项目结构 文件说明 潜规则 java入门-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于yolov8的红外小目标无人机飞鸟检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的红外小目标无人机与飞鸟检测系统是一项集成了前沿技术的创新解决方案。该系统利用YOLOv8深度学习模型的强大目标检测能力&#xff0c;结合红外成像技术&#xff0c;实现了对小型无人机和飞鸟等低空飞行目标的快速、准确检测。 YOLOv8作为YOLO系列的…

Springboot与minio

一、介绍 Minio是一个简单易用的云存储服务&#xff0c;它让你可以轻松地把文件上传到互联网上&#xff0c;这样无论你在哪里&#xff0c;只要有网络&#xff0c;就能访问或分享这些文件。如果你想要从这个仓库里取出一张图片或一段视频&#xff0c;让网站的访客能看到或者下载…

How do you send files to the OpenAI API?

题意&#xff1a;你如何向 OpenAI API 发送文件 问题背景&#xff1a; For fun I wanted to try to make a tool to ask chatgpt to document rust files. I found an issue, in that the maximum message length the API allows seems to be 2048 characters. 为了好玩&…

【深度学习】(3)--损失函数

文章目录 损失函数一、L1Loss损失函数1. 定义2. 优缺点3. 应用 二、NLLLoss损失函数1. 定义与原理2. 优点与注意3. 应用 三、MSELoss损失函数1. 定义与原理2. 优点与注意3. 应用 四、BCELoss损失函数1. 定义与原理2. 优点与注意3. 应用 五、CrossEntropyLoss损失函数1. 定义与原…

K8S容器实例Pod安装curl-vim-telnet工具

在没有域名的情况下&#xff0c;有时候需要调试接口等需要此工具 安装curl、telnet、vim等 直接使用 apk add curlapk add vimapk add tennet

CMake 构建Qt程序弹出黑色控制台

CMake 构建Qt程序弹出黑色控制台

mysql 内存被打满记录

一&#xff1a;早上收到报警&#xff1a;提示&#xff1a;您的云数据库RDS的1个实例因存储空间满将被锁定&#xff0c;请关注实例的存储空间使用情况&#xff0c;可通过存储扩容或空间清理解除锁定。后续查看错误日志如下&#xff1a;磁盘没有空间了 没有多余的空间写binlog和…

STM32 单片机最小系统全解析

STM32 单片机最小系统全解析 本文详细介绍了 STM32 单片机最小系统&#xff0c;包括其各个组成部分及设计要点与注意事项。STM32 最小系统在嵌入式开发中至关重要&#xff0c;由电源、时钟、复位、调试接口和启动电路等组成。 在电源电路方面&#xff0c;采用 3.3V 直流电源供…

Golang | Leetcode Golang题解之第417题太平洋大西洋水流问题

题目&#xff1a; 题解&#xff1a; type pair struct{ x, y int } var dirs []pair{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func pacificAtlantic(heights [][]int) (ans [][]int) {m, n : len(heights), len(heights[0])pacific : make([][]bool, m)atlantic : make([][]bool, …

AttributeError: ‘Sequential‘ object has no attribute ‘predict_classes‘如何解决

今天跟着书敲代码&#xff0c;报错&#xff1a; Sequential object has no attribute predict_classes&#xff0c;如图所示&#xff1a; 上网百度&#xff0c;发现predict_classes函数在新版本中已经删除了&#xff0c;需要使用 model.predict() 替代 model.predict_classes()…

基于springboot+vue超市管理系统

基于springbootvue超市管理系统 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本无人超市管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助使用者在…

AI运动小程序开发常见问题集锦一

截止到现在写博文时&#xff0c;我们的AI运动识别小程序插件已经迭代了23个版本&#xff0c;成功应用于健身、体育、体测、AR互动等场景&#xff1b;为了让正在集成或者计划进行功能扩展优化的用户&#xff0c;少走弯路、投入更少的开发资源&#xff0c;我们归集了一部分集中的…

统信服务器操作系统ade版【iostat】命令详解

统信服务器操作系统全版本iostat 安装、命令格式和命令参数 文章目录 功能概述功能介绍1.iostat安装2.iostat命令格式3.iostat命令参数 功能概述 iostat主要用与报告CPU统计信息和设备分区的io统计信息&#xff0c;iostat首次运行时显示自系统启动开始的各项统计信息&#xff…

vben admin vue后端权限控制登录失效后,vben admin获取登录过期信息并注销登录返回登录页

登录失效后&#xff0c;后端拦截器拦截并跳转到登录失效方法&#xff0c;该方法返回对应的code编码&#xff0c;如果报错跨域&#xff0c;加上跨域注解CrossOrigin ResponseBodyCrossOrigin //目标方法上加入这个解决跨域RequestMapping(value { "/tokentimeout"}…

IEEE Electronic Library(IEL)数据库文献检索下载介绍及个人获取IEEE文献途径

一、数据库介绍 IEEE&#xff08;The Institute of Electrical and Electronics Engineers&#xff0c;电气电子工程师学会&#xff09;是目前全球最大的非营利性专业技术学会&#xff0c;在全球160多个国家拥有超过45万名会员。IEEE在电气电子、计算机、半导体、通讯、电力能…

【Unity踩坑】UI Image的fillAmount不起作用

在游戏场景中&#xff0c;我们经常在界面上展示进度条&#xff0c;当然有各种形状的&#xff0c;线性的&#xff0c;长方形的&#xff0c;圆形&#xff0c;环形等等。 Unity中实现这种效果的话&#xff0c;最基本的方法说是改变Image的fillAmout属性。 如果你是初次使用UI Ima…

浅显易懂的Git教程

Git概述 SVN与Git的对比 SVN&#xff08;Subversion&#xff09; 类型&#xff1a;集中式版本控制系统 工作流程&#xff1a; 从中央服务器下载最新版本到本地。在本地进行开发。提交更改回中央服务器。 优点&#xff1a; 简单易用&#xff0c;适合小型团队。版本历史清…

VMware vSphere 8.0 Update 3b 发布下载,新增功能概览

VMware vSphere 8.0 Update 3b 发布下载&#xff0c;新增功能概览 vSphere 8.0U3 | ESXi 8.0U3 & vCenter Server 8.0U3 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vsphere-8-u3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页…

JavaEE——多线程

接着上篇博客我们已经学习了进程的相关概念&#xff0c;了解到进程里面的相关重要属性&#xff0c;那么这篇博客呢我们要学习一个新的知识点——线程&#xff01; 一、引入进程的目的 首先引入进程这个概念&#xff0c;是为了解决“并发编程”这样的问题。因为CPU 再往小了做…

【C++】——多态详解

不管前方的路有多苦&#xff0c;只要走的方向正确&#xff0c;不管多么崎岖不平&#xff0c;都比站在原地更接近幸福。 —— 宫崎骏 《千与千寻》 目录 1、什么是多态&#xff1f; 2、多态的定义及实现 2.1多态的构成条件 ​2.2多态语法细节处理 2.3协变 2.4析构函数的重…