- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
void test() {
String s1 = "1";
//int i1 = int(s1); -- compilation error
int i1 = Integer.parseInt(s1);
long l1 = 1;
int i2 = (int) l1;
}
何时使用 Integer.parseInt
转换为 Integer
以及何时仅使用 int
转换为 Integer
?
最佳答案
转换发生在从 child 到 parent (向下转换)或反之(向上转换):
class A extends B
B b = (B)(new A());
或者在接口(interface)的情况下:
List<String> myList = new ArrayList<>();
ArrayList<String> myArrayList = (ArrayList)myList;
或基元之间 - 你的情况。
您可以决定将 long
转换为 int
或相反。
解析有些不同。您获取一个与数字类型无关的 String
并声明您想要尝试
将其解析为数字。
你做出这样的决定是因为你坚信 String
只有数字(在任何以 16 为底的数字系统中)并且你想将该数字用作数字变量。
该机制在 specification chapter 5 中有广泛描述.根据基元进行转换可以代表以下两种操作之一:扩大基元转换或缩小基元转换。
有 19 种可能的扩大基元转换。加宽意味着从较小的字体到较大的字体。
+-----------+-------+------+-------+-------+--------+
| | short | int | long | float | double |
| short -> | | x | x | x | x |
| int -> | | | x | x | x |
| long -> | | | | x | x |
| float -> | | | | | x |
| double -> | | | | | |
+-----------+-------+------+-------+-------+--------+
您可以阅读有关后果 here .
+-----------+------+------+-------+------+-------+-------+--------+
| | byte | char | short | int | long | float | double |
| byte -> | | | | | | | |
| char -> | | | | | | | |
| short -> | x | x | | | | | |
| int -> | x | x | x | | | | |
| long -> | x | x | x | x | | | |
| float -> | x | x | x | x | x | | |
| double -> | x | x | x | x | x | x | |
+-----------+------+------+-------+------+-------+-------+--------+
后果描述here .
描述了转换 here .它们包括所有可能的转换,包括 String 转换,它在对字符串和非字符串使用 +
操作数时使用。
关于java - 我们究竟需要如何使用类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46544649/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!