当前位置: 首页 > 知识库问答 >
问题:

为什么char类型不在Java的“加宽路径”上?

黄无尘
2023-03-14

我知道Java的自动类型转换可以用一种叫做“加宽路径”的东西来概括,它看起来像这样:

字节-

以下代码编译OK,并说明了一些char/int转换:

char c = '1';
int i = c;  // char to int

// char to int, and vice versa
switch (c) {
    case 1:
}
switch (i) {
    case '1':
}

鉴于上面要求的转换,为什么char类型不在Java的加宽路径上?谢谢。

共有1个答案

叶国兴
2023-03-14

charint当然是加宽转换。但是intchar不是,因为您似乎在考虑基于第二个switch语句。在这种情况下,它实际上是case中的'1'char类型,它根据它的unicode代码点进行转换为int类型。此外,J§LS 5.1.2-加宽Primitive转换清楚地表明从charint存在加宽转换。

 类似资料:
  • 在bash_profile中,java_home的设置如下所示 导出java_home=$(/usr/libexec/java_home) /usr/bin/java 命令java给出下面的路径 /usr/bin/java 命令“ls-la/usr/bin/java”提供以下链接 LRWXR-XR-X1根轮74 2019年1月15日/usr/bin/java->/system/library/fr

  • 问题内容: 想知道不指定classpath选项时默认的classpath是什么吗? 问题答案: 当前的工作目录()。 从Java™教程中:PATH和CLASSPATH: 类路径 的 默认值为“。” ,表示仅搜索当前目录。指定CLASSPATH变量或-cp命令行开关将覆盖此值。 这包括子目录吗? 不,在类路径中没有条目是“递归的”。您必须明确列出每个子目录(或jar)。但是,如果您有一个表示clas

  • 在学习和使用spring-boot之后,我了解了spring-boot ConditionalOnClass的用法和逻辑,我的问题是: < li >为什么“因为这个注释是通过加载类字节码来解析的,所以在这里指定最终可能不在类路径上的类是安全的”。 < li >与此相关的JVM规范在哪里? https://github.com/spring-projects/spring-boot/blob/mas

  • 问题内容: 我在我的类路径(如果重要的话,在iReport中)中加载了一个jar,可以肯定它具有所需的方法,但是当我尝试测试连接时,因此调用了jar,我得到了java.lang.NoSuchMethodError,说它正在引用班上 我不确定这是否与问题有关,但是开头的“ L”是哪里来的?下次我上课时,课后有一个“ V”。这些信件从哪里来?它们是什么意思? 堆栈跟踪的开始: 问题答案: Java使用

  • 问题内容: 假设我已经使用Groovyc编译了Groovy脚本,该脚本已在文件系统中生成了一个或多个.class文件。如何从Java应用程序动态地将这些类添加到类路径中,以加载它们并调用它们的方法?目标是预编译Groovy脚本并将其存储到数据库中,以便可以从脚本的编译版本执行评估。 问题答案: 您可以创建URLClassLoader的实例以从目录加载新类: 第1 行将.class 创建到.clas

  • 问题内容: 我阅读并发现在 System类下有一些函数作为getproperties,我们可以在其中检索属性,然后也可以使用setProperties()对其进行设置。 但是我得到的答案是它不会工作。我自己还没有尝试过,但是,我正在接听电话。 只是为了澄清一下,如果这些setProperty()和getProperty()方法无法在运行时更改它们,为什么会存在它们。还是仅特定于classpath属