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;

    @Override
    public 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.mfbz.cn/a/877627.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt ORM模块使用说明

附源码&#xff1a;QxOrm是一个C库资源-CSDN文库 使用说明 把QyOrm文件夹拷贝到自己的工程项目下, 在自己项目里的Pro文件里添加include($$PWD/QyOrm/QyOrm.pri)就能使用了 示例test_qyorm.h写了表的定义,Test_QyOrm_Main.cpp中写了所有支持的功能的例子: 通过自动表单添加…

C++ ——string的模拟实现

目录 前言 浅记 1. reserve&#xff08;扩容&#xff09; 2. push_back&#xff08;尾插&#xff09; 3. iterator&#xff08;迭代器&#xff09; 4. append&#xff08;尾插一个字符串&#xff09; 5. insert 5.1 按pos位插入一个字符 5.2 按pos位插入一个字符串 …

CleanClip for Mac 剪切板 粘贴工具 历史记录 安装(保姆级教程,新手小白轻松上手)

CleanClip&#xff1a;革新macOS剪贴板管理体验 目录 功能概览 多格式历史记录保存智能搜索功能快速复制操作拖拽功能 安装指南 前期准备安装步骤 配置与使用 功能概览 多格式历史记录保存 CleanClip支持保存文本、图片、文件等多种格式的复制历史记录&#xff0c;为用户提…

C语言 | Leetcode C语言接雨水II

题目&#xff1a; 题解&#xff1a; typedef struct{int row;int column;int height; } Element;struct Pri_Queue; typedef struct Pri_Queue *P_Pri_Queue; typedef Element Datatype;struct Pri_Queue{int n;Datatype *pri_qu; };/*优先队列插入*/ P_Pri_Queue add_pri_que…

通信工程学习:什么是SNI业务节点接口

SNI&#xff1a;业务节点接口 SNI业务节点接口&#xff0c;全称Service Node Interface&#xff0c;是接入网&#xff08;AN&#xff09;和一个业务节点&#xff08;SN&#xff09;之间的接口&#xff0c;位于接入网的业务侧。这一接口在通信网络中扮演着重要的角色&#xff0c…

几种手段mfc140u.dll丢失的解决方法,了解mfc140u.dll

在使用Windows操作系统时&#xff0c;许多用户可能会遇到“找不到mfc140u.dll”或“mfc140u.dll未找到”的错误提示。这个错误通常是由于该文件丢失或损坏所致。本文将详细介绍mfc140u.dll文件的作用、丢失的原因及其解决方法&#xff0c;帮助您快速恢复系统的正常运行。 一、m…

2024年华为9月4日秋招笔试真题题解

2024年华为0904秋招笔试真题 二叉树消消乐好友推荐系统维修工力扣上类似的题--K站中转内最便宜的航班 二叉树消消乐 题目描述 给定原始二叉树和参照二叉树(输入的二叉树均为满二叉树&#xff0c;二叉树节点的值范围为[1,1000]&#xff0c;二叉树的深度不超过1000)&#xff0c…

Maven 解析:打造高效、可靠的软件工程

Apache Maven【简称maven】 是一个用于 Java 项目的构建自动化工具&#xff0c; 通过提供一组规则来管理项目的构建、依赖关系和文档。 1.Pre-预备知识&#xff1a; 1.1.Maven是什么&#xff1f; [by Maven是什么&#xff1f;有什么作用&#xff1f;Maven的核心内容简述_ma…

简化登录流程,助力应用建立用户体系

随着智能手机和移动应用的普及&#xff0c;用户需要在不同的应用中注册和登录账号&#xff0c;传统的账号注册和登录流程需要用户输入用户名和密码&#xff0c;这不仅繁琐而且容易造成用户流失。 华为账号服务(Account Kit)提供简单、快速、安全的登录功能&#xff0c;让用户快…

Zabbix自定义监控项与触发器

当我们需要获取某台主机上的数据时&#xff0c;直接利用 zabbix 提供的模板可以很方便的获得需要的数据,但是有些特别的数据&#xff0c;利用这些现有的模板或监控项是无法实现的&#xff0c;例如网站状态信息的监控、mysql数据库主从状态等信息。这是就需要自己定义键值和监控…

Java许可政策再变,Oracle JDK 17 免费期将结束!

原文地址&#xff1a;https://www.infoworld.com/article/3478122/get-ready-for-more-java-licensing-changes.html Oracle JDK 17的许可协议将于9月变更回Oracle Technology Network License Agreement&#xff0c;这将迫使用户重新评估他们的使用策略。 有句老话说&#xf…

小程序组件间通信

文章目录 父传子子传父获取组件实例兄弟通信 父传子 知识点&#xff1a; 父组件如果需要向子组件传递指定属性的数据&#xff0c;在 WXML 中需要使用数据绑定的方式 与普通的 WXML 模板类似&#xff0c;使用数据绑定&#xff0c;这样就可以向子组件的属性传递动态数据。 父…

java实际开发——数据库存储金额时用什么数据类型?(MySQL、PostgreSQL)

目录 java开发时金额用的数据类型——BigDecimal MySQL存储金额数据时用的数据类型是——decimal PostgreSQL存储金额数据时用的数据类型是——decimal 或 money java开发时金额用的数据类型——BigDecimal https://blog.csdn.net/Jilit_jilit/article/details/142180903?…

YOLOv5/v8 + 双目相机测距

yolov5/v8双目相机测距的代码&#xff0c;需要相机标定 可以训练自己的模型并检测测距&#xff0c;都是python代码 已多次实验&#xff0c;代码无报错。 非常适合做类似的双目课题&#xff01; 相机用的是汇博视捷的双目相机&#xff0c;具体型号见下图。 用的yolov5是6.1版本的…

ubuntu2204安装kvm

ubuntu2204安装kvm 前言一、检测硬件是否支持二、安装软件三、创建/管理虚拟机1、创建存储池2、qemu创建镜像3、xml文件运行虚拟机1、范文2、xml文件创建虚机3、创建虚机 4、克隆虚机5、创建快照6、脚本创建VNC连接 四、创建集群1、安装glusterfs2、加入集群删除节点 3、 创建卷…

深度剖析iOS渲染

iOS App 图形图像渲染的基本流程&#xff1a; 1.CPU&#xff1a;完成对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制。 2.GPU&#xff1a;GPU拿到CPU计算好的显示内容&#xff0c;完成纹理的渲染&#xff0c; 渲染完成后将渲…

基于YOLO深度学习和百度AI接口的手势识别与控制项目

基于YOLO深度学习和百度AI接口的手势识别与控制项目 项目描述 本项目旨在开发一个手势识别与控制系统&#xff0c;该系统能够通过摄像头捕捉用户的手势&#xff0c;并通过YOLO深度学习模型或调用百度AI接口进行手势识别。识别到的手势可以用来控制计算机界面的操作&#xff0…

使用 Elastic 和 LM Studio 的 Herding Llama 3.1

作者&#xff1a;来自 Elastic Charles Davison, Julian Khalifa 最新的 LM Studio 0.3 更新使 Elastic 的安全 AI Assistant 能够更轻松、更快速地与 LM Studio 托管模型一起运行。在这篇博客中&#xff0c;Elastic 和 LM Studio 团队将向你展示如何在几分钟内开始使用。如果你…

API - String 和 ArrayList

01 API是什么 答&#xff1a;API 全称 Application Programming Interfaace 应用程序编程接口。就是别人写好的一些程序&#xff0c;我们可以使用它们去解决相关问题。 02 为什么要学API 答&#xff1a;不要重复造轮子。Java已经有20多年的历史了&#xff0c;在这20多年里Ja…

图新地球-将地图上大量的地标点批量输出坐标到csv文件【kml转excel】

0.序 有很多用户需要在卫星影像、或者无人机航测影像、倾斜模型上去标记一些地物的位置&#xff08;如电线杆塔、重点单位、下水盖等&#xff09; 标记的位置最终又需要提交坐标文本文件给上级单位或者其他部门使用&#xff0c;甚至需要转为平面直角坐标。 本文的重点是通过of…