给出以下声明。 “0”+“123”.charAt(5); 表达式本身的类型是什么?它会是一个字符串还是会导致它没有类型的异常?Java表达式类型
回答
我期望编译错误。
现在的问题已经被编辑过,我会说,表达的“类型”是String
,并执行表达式的结果将是一个java.lang.StringIndexOutOfBoundsException
。
我怀疑原来的问题是检查你对operator precedence的理解。
你可能有兴趣地注意到这个代码,编译成功的差异:
String s = "0" + "123".charAt(5);
char c = ("0" + "123").charAt(5);
注:如果单独执行,任何一行都会抛出StringIndexOutOfBoundsException
。
有几个洛根。问题和我猜你喜欢archieve等什么:
我猜ü意味着字符串“0 + 123”和功能的charAt(INT指数)。该函数返回一个char对象。
,如果我错了你的意思表达,因为它是现在,也将是一个错误:
- 字符串是不正确的封闭的双引号
- 不能被解析为一个类型
尝试它就像你在eclipse中写的。
Object test = "0"+123."charAt(5);
重构这样的:
static Object test = "0"+123;
System.out.println(((String) test).charAt(5)); // would be still an exception: java.lang.StringIndexOutOfBoundsException: String index out of range: 5
即使更改属性值设置为 “0 + 123”,它仍然是相同的异常。
希望它可以帮助
编辑现在的问题,写下“0”。 123" .charAt(5); 这是几天前的考试问题。如果解决方案是该类型将是一个字符串。但我不同意,并认为这种类型将是一个例外。我知道这将是一个compilaton错误,所以我想我会问这里,看看你们是否有任何建议,如果你被问到这个问题是什么类型的表达式是 – Vegardh
你不能连接Java字符串''' – Armand
但是即使字符串与'+'串联在一起,也会有一个例外。 charAt()的返回类型仍然是char。所以字符串是错误的。请参阅:http://www.tutorialspoint.com/java/java_string_charat.htm – rmbl
- 1. 类型表达式必须是阵列类型的错误JAVA
- 2. lambda表达式的类型
- 3. Haskell表达式类型?
- 4. 条件表达式类型
- 5. 正则表达式java - Java I类
- 6. 此表达式具有类型单位,但表达式类型为int
- 7. OCaml - 此表达式的类型为float,但表达式的类型为int
- 8. 从表达式获取模型类型
- 9. 表达式必须具有类类型?
- 10. 从类型lambda表达式获取所有属性表达式
- 11. Java表达式
- 12. Java - 计算大型数学表达式
- 13. 带有“表达式”的Java类型提升
- 14. java类的字符串表达式
- 15. 在jexl表达式中输入类型
- 16. 在SML中导出表达式类型
- 17. 匿名类型与Lambda表达式
- 18. Haskell:“generic”类型的表达式
- 19. 常量表达式在类型“UInteger”
- 20. 类型错误缀表达式VHDL
- 21. 不支持的表达式类型:System.Linq.Expressions.TypedParameterExpression
- 22. 正则表达式内容类型
- 23. 确定表达式的类型
- 24. lambda表达式和类型推断
- 25. Lambda表达式返回类型问题
- 26. haskell中表达式的类型
- 27. 哈斯克尔类型的表达式
- 28. OCaml表达式类型问题
- 29. 创建不同类型的表达式
- 30. 如何显示postgresql表达式类型?
'“charAt'是一个语法错误 – immibis
@immibis NOOOO他应该首先猜测;。!) – Thomas
请先纠正你的语法和编译看到output.Then,如果你面对任何问题发布在这里 – aa1992