鱼C论坛

 找回密码
 立即注册
查看: 5046|回复: 4

自动类型转换

[复制链接]
发表于 2021-2-22 18:27:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
package come.inspur.ch2;

public class TypeTransferDemo01 {
        /**
         * 自动类型转换实例   自动类型转换规则
         * @param args
         */

        public static void main(String[] args) {
                // TODO 自动生成的方法存根
                byte b=127;
                int num=789;
                float f = 234;
                double d = 45;
                System.out.println("byte类型数据和int类型数据相乘:"+(b*num)",结果的数据类型为:"
                +getType( (b*num)));                                                                                                                                        //这一行有问题
                System.out.println("byte类型数据和float类型数据相乘:"+(b*f)",结果的数据类型为:"
                +getType( (b*f)));                                                                //这一行有问题
                System.out.println("int类型数据和double类型数据相乘:"+(d*num)",结果的数据类型为:"
                +getType( (d*num)));             //这一行有问题
               

        }
/**
* 声明公用方法返回参数的数据类型
* @param o
* @return
*/
        public static String getType(Object o) {
                return o.getClass().toString();
               
        }
}


应该怎么改呢




Exception in thread "main" java.lang.Error: 无法解析的编译问题:
        标记“Invalid Character”上有语法错误,删除此标记
        未对参数类型 int, String 定义运算符 *
        标记“)”上有语法错误,应为 *
        标记“Invalid Character”上有语法错误,删除此标记
        未对参数类型 float, String 定义运算符 *
        标记“)”上有语法错误,应为 *
        标记“Invalid Character”上有语法错误,删除此标记
        未对参数类型 double, String 定义运算符 *
        标记“)”上有语法错误,应为 *

        at come.inspur.ch2.TypeTransferDemo01.main(TypeTransferDemo01.java:15)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-22 19:42:34 | 显示全部楼层
不是有问题,是把字符串拼接用错了
少了一个+号
还有float f = 234;时,最好把赋值后面加个f,你这是整数没事,一但赋值为小数,会报错
System.out.println("byte类型数据和int类型数据相乘:"+(b*num) + ",结果的数据类型为:"
        +getType( (b*num)));                                                                                                                                        //这一行有问题
        System.out.println("byte类型数据和float类型数据相乘:"+(b*f) + ",结果的数据类型为:"
        +getType( (b*f)));                                                                //这一行有问题
        System.out.println("int类型数据和double类型数据相乘:"+(d*num) + ",结果的数据类型为:"
        +getType( (d*num)));             //这一行有问题
        System.out.println(f);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-23 08:55:25 | 显示全部楼层
巴巴鲁 发表于 2021-2-22 19:42
不是有问题,是把字符串拼接用错了
少了一个+号
还有float f = 234;时,最好把赋值后面加个f, ...

【捂脸】好dei!!!谢谢大佬~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-23 10:04:20 | 显示全部楼层
丸子酱ovo 发表于 2021-2-23 08:55
【捂脸】好dei!!!谢谢大佬~

给个最佳就行
继续努力啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-4 16:35:31 | 显示全部楼层
巴巴鲁 发表于 2021-2-23 10:04
给个最佳就行
继续努力啊

哈哈哈,你这个最佳等的时间有点久呀!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 20:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表