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

ops/2024/9/25 8:41:31/

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 枚举写法

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;}}

使用

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

java 判断Integer aaa 不为空

示例 1:直接判断

java">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 中,然后使用它的方法来进行非空检查或其他操作。

java">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()方法

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

2.使用Long.toString()方法

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

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

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

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

4. 使用String.format()方法

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

java">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参数,可以通过定义一个包含要返回的值的类来实现。
 

java">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;}
}

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

java">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参数,可以通过定义一个包含要传递的值的类来实现。

java">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;}
} 

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

java">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.ppmy.cn/ops/115710.html

相关文章

Go进阶概览 -【7.1 反射机制与动态编程】

7.1 反射机制与动态编程 反射是Go语言的一项强大特性&#xff0c;使得程序可以在运行时检查和修改自身的结构和行为。 反射机制的使用在一些动态编程场景中非常重要&#xff0c;但同时也带来了一定的性能开销。 本节我们将深入解析Go的反射机制&#xff0c;探讨其在动态编程…

WPF 控件数据源绑定

WPF 控件数据源绑定 前提&#xff1a;我的数据源都放在 DataProcessView 类中&#xff0c;然后在 MainWindow 中声明该类的对象 DataProcess&#xff0c;如果是指定了 DataContext &#xff0c;就将该对象赋值给 DataContext &#xff08;如下&#xff09;&#xff0c;否则不赋…

unix中如何查询和修改进程的资源限制

一、前言 一个进程在运行时&#xff0c;会用到各种资源&#xff0c;比如cpu的使用时间、内存空间、文件等等。那么&#xff0c;一个进程能够占用多少资源呢&#xff1f;cpu使用的时间有多长&#xff1f;进程空间有多大&#xff1f;能够创建多少个文件&#xff1f;这个就是本文…

专利管理系统如何高效实现五书转档为XML?

在专利管理领域&#xff0c;五书&#xff08;申请书、说明书、权利要求书、附图说明、摘要&#xff09;转档为XML格式是一项至关重要的工作。XML&#xff08;可扩展标记语言&#xff09;具有良好的结构性、扩展性和数据交换性。将五书转换为XML格式能够方便专利数据在不同系统之…

梧桐数据库(WuTongDB):向量化查询优化器的一些实现细节

为了更深入探讨向量化查询优化器的实现细节&#xff0c;尤其是在高性能数据库系统中的应用&#xff0c;我们可以进一步分析以下几个核心方面&#xff1a; 向量化的查询计划优化。批处理与内存管理优化。特定操作符的向量化执行&#xff08;如 JOIN 和 GROUP BY 操作的向量化&a…

分享6个icon在线生成网站,支持AI生成

在这个数字化的时代&#xff0c;创意和视觉标识在产品推广中可谓是愈发重要。提到图标&#xff0c;我们就不能不聊聊“Icon”这个小家伙。它不仅仅是个简单的视觉元素&#xff0c;简直是品牌信息的超级传递者。因此&#xff0c;图标生成器成了设计界的“万金油”&#xff0c;帮…

MongoDB解说

MongoDB 是一个流行的开源 NoSQL 数据库&#xff0c;它使用了一种被称为文档存储的数据库模型。 与传统的关系型数据库管理系统&#xff08;RDBMS&#xff09;不同&#xff0c;MongoDB 不使用表格来存储数据&#xff0c;而是使用了一种更为灵活的格式——JSON 样式的文档。 这…

深度学习01:机器学习概念引入

机器学习在唤醒词识别中的应用&#xff1a;从传统编程到数据驱动编程 随着人工智能和机器学习的普及&#xff0c;越来越多的日常任务开始依赖这些技术。语音助手如“Alexa”、“Hey Siri”正是其中的代表性应用&#xff0c;它们可以迅速识别用户的唤醒词&#xff0c;并执行相应…