记得有此去面试,是在Linux下使用文本编译器写程序。关于泛型的那点一直有问题。我当时是想把定义一个存储int类型的泛型变量,
List<int> list = new ArrayList<int>();
但是编译就出错,有没有报错信息,所以我一直没有搞明白哪里出错了。
今天读一个java方面的书的时候,再次留意到这个问题。就试验了一下,
public class Employee {
private String name;
private int salary = 15000;
public Employee(String name) {
this.name = name;
}
public Object getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public boolean equals(Employee employee) {
return this.name.equals(employee.name);
}
}
public static void main(String[] args) throws Exception {
Employee employee = new Employee("sun");
int salary = (int) employee.getSalary();
System.out.println(salary);
}
运行的时候发现报Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot cast from Object to int错误。
我分析了一下,因为我返回的是Object对象,它是一个对象类型,但是int是java内置的基本数据类型,所以无法强转,即使是返回的数据确实int类型的,但是方法的返回值类型是Object的,所以我们要用这个返回值,只能把他强转成Integer类型。所以基本数据类型在一系列的转换步骤是int-->Object-->Integer-->int,在使用泛型的时候也不能使用基本数据类型。所以如果要生成一个存储int类型的List,可以这样声明List<Integer> list = new ArrayList<Integer>();
分享到:
相关推荐
C语言中int到float的强制类型转换 在C语言中,强制类型转换是非常常见的操作之一,而int到float的强制类型转换则是其中一种非常重要的类型转换。在项目中经常会遇到需要将int类型的数据转换为float类型的情况,这...
这一问题对于理解C语言中的数组表示、指针操作以及强制类型转换非常重要。 #### 数组与指针基础 在C语言中,数组是一种基本的数据结构,用于存储相同类型的多个元素。当涉及到多维数组时,实际上仍然是在内存中按...
在“C强制类型转换_C教程共5页.pdf.zip”这个压缩包中,我们可以预见到它包含了关于C语言强制类型转换的详细讲解,共分为5页。虽然这里无法直接提供压缩包内的内容,但我可以根据这个主题为你详细阐述C语言中的强制...
在给出的例子中,我们看到了一个关于强制类型转换的常见问题。代码创建了一个`List<String>`,然后尝试将其转换为`String[]`。这是通过调用`toArray()`方法实现的。`List.toArray()`方法默认返回一个`Object[]`类型...
强制类型转换提供了更多灵活性,但也需要开发者具备足够的经验和判断力,以避免潜在的错误和安全问题。 - **实践应用**:在实际编程中,合理运用这些概念能够帮助开发者编写出更加高效、可靠且易于维护的代码。
- 强制类型转换可能导致溢出问题,尤其是在涉及到算术运算时,确保结果不会超出目标类型的数据范围。 理解这些概念对于编写高效且安全的C语言代码至关重要。在处理不同类型的数据时,正确使用强制类型转换可以避免...
在Java中,强制类型转换是一个重要的概念,它涉及到不同数据类型的相互转换。当我们需要将一个父类引用指向的子类对象转换为子类类型,或者将数值类型之间进行不自然的转换时,就需要进行强制类型转换。以下是对这个...
强制手动类型转换是指程序员明确指定的类型转换过程,通常用于较大类型向较小类型转换时,因为这可能会导致数据的精度损失或异常。 ##### 基本数据类型的强制手动类型转换 - **大→小**: 大数据类型到小数据类型的...
2. 显式类型转换:也称为强制类型转换,是程序员明确指定的转换,用于在不安全或者需要特定行为时进行。在VC++中,显式类型转换有四种主要形式: - `(类型)`:使用括号进行类型转换,例如 `(int)5.6` 会将浮点数...
在C语言中,强制类型转换是一种将一个数据类型转换为另一个数据类型的操作。这通常用于在不同类型的变量间进行操作,或在特定情况下确保数据的正确处理。在本主题中,我们将深入探讨C语言中的强制类型转换,以及如何...
在Java编程语言中,强制类型转换和二进制表示是两个重要的概念,它们与程序的运行效率和数据处理紧密相关。下面将详细讲解这两个主题。 首先,我们来谈谈Java中的强制类型转换。Java是一种静态类型语言,这意味着在...
当需要将较大的数据类型转换为较小的数据类型时,就需要使用强制类型转换。强制类型转换需要通过 `(类型)` 的形式来指定目标类型。 示例: ```java int x = 100; byte y = (byte) x; // 强制类型转换 ``` 注意:...
类型转换可以分为两种:自动类型转换(隐式转换)和强制类型转换(显式转换)。 ### 二、自动类型转换 自动类型转换是指在无需程序员干预的情况下,编译器自动完成的数据类型转换。例如,在表达式计算中,如果涉及到...
- `(type)expression`:强制类型转换,将表达式的结果转换为指定的类型,但需要注意可能的精度损失或溢出问题。 - `typedef`:通过定义新的类型名来进行类型转换,例如`typedef long int LongInt; LongInt num = ...
无论是自动类型转换、强制类型转换,还是装箱与拆箱,都需要根据实际需求灵活运用,同时注意可能产生的数据精度损失和溢出问题。通过不断的实践和学习,你将能够熟练地运用这些概念来构建复杂而高效的程序。
显式类型转换是程序员明确指定的转换,通常使用C-style强制类型转换 `(type)` 或 C++-style 类型转换函数 `static_cast`, `dynamic_cast`, `reinterpret_cast` 和 `const_cast`。下面我们将一一介绍: 1. **C-style...
2. **显式类型转换(强制类型转换)**:当需要明确指定转换时,程序员会使用显式类型转换。C++提供了四种显式类型转换方式: - `(类型)`:C风格的类型转换,例如 `(int)var`。 - `static_cast<类型>`:用于基本...