首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中,从整数到字符的隐式类型转换是如何工作的(Java基础知识)

在Java中,从整数到字符的隐式类型转换是如何工作的(Java基础知识)
EN

Stack Overflow用户
提问于 2013-08-14 05:11:22
回答 3查看 551关注 0票数 0

所以在这个基本的Java程序中,

代码语言:javascript
复制
public class HelloWorld{
    public void testFunc(){
        System.out.println("Class = "+this);
    }

    @Override
    public String toString(){
        return "TEST";
    }


    public static void main(String[] args){
        int i = 5;
        HelloWorld hw = new HelloWorld();
        System.out.println("Hello, World");
        hw.testFunc();
        System.out.println(i);
    }
}  

System.out.println(i);自动将int i转换为String。我认为任何需要字符串类型参数的函数都会自动在java (与C中的转换不同)进行这种转换。但是,如果我在Android上尝试这个

Toast.makeText(getApplicationContext(), i, Toast.LENGTH_SHORT).show();

i在扩展活动类中声明为int时,应用程序在启动时崩溃。那么,这种转换在Java中是如何工作的呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-14 05:14:10

这不是一个隐含的转换。pintln()是由许多数据类型组成的过载

代码语言:javascript
复制
public void println(int x) {
    synchronized (this) {
        print(x);
        newLine();
    }
}

在你的例子中,makeText()不是。

票数 5
EN

Stack Overflow用户

发布于 2013-08-14 05:18:57

System.out.println(int)确实将int转换为char,它使用String.valueOf(int)将int转换为String。尝试显式转换System.println((char)i),您将看到它打印一个不同的结果,它将是U+0005 Unicode字符。

票数 2
EN

Stack Overflow用户

发布于 2013-08-14 05:26:46

理解JAVA中的类型转换:请参阅

用Java编程语言编写的每个表达式都有一个类型,可以从表达式的结构和表达式中提到的文字、变量和方法的类型推导出来。

但是,在表达式类型不合适的上下文中编写表达式是可能的。在某些情况下,这会导致编译时出现错误。,这在Android示例中是正确的.

在其他情况下,上下文可能能够接受与表达式类型相关的类型;为了方便起见,Java编程语言可以执行从表达式类型到其周围上下文可接受的类型的隐式转换,而不是要求程序员显式地指示类型转换。,System.out.println(i)示例也是如此

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18223653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档