`

关于强制类型转换的小问题

阅读更多
    记得有此去面试,是在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的强制类型转换 在C语言中,强制类型转换是非常常见的操作之一,而int到float的强制类型转换则是其中一种非常重要的类型转换。在项目中经常会遇到需要将int类型的数据转换为float类型的情况,这...

    c语言数组访问及强制转换

    这一问题对于理解C语言中的数组表示、指针操作以及强制类型转换非常重要。 #### 数组与指针基础 在C语言中,数组是一种基本的数据结构,用于存储相同类型的多个元素。当涉及到多维数组时,实际上仍然是在内存中按...

    C强制类型转换-C教程共5页.pdf.zip

    在“C强制类型转换_C教程共5页.pdf.zip”这个压缩包中,我们可以预见到它包含了关于C语言强制类型转换的详细讲解,共分为5页。虽然这里无法直接提供压缩包内的内容,但我可以根据这个主题为你详细阐述C语言中的强制...

    浅谈Java中强制类型转换的问题

    在给出的例子中,我们看到了一个关于强制类型转换的常见问题。代码创建了一个`List&lt;String&gt;`,然后尝试将其转换为`String[]`。这是通过调用`toArray()`方法实现的。`List.toArray()`方法默认返回一个`Object[]`类型...

    强制转换指针类型

    强制类型转换提供了更多灵活性,但也需要开发者具备足够的经验和判断力,以避免潜在的错误和安全问题。 - **实践应用**:在实际编程中,合理运用这些概念能够帮助开发者编写出更加高效、可靠且易于维护的代码。

    2.2.7_强制类型转换1

    - 强制类型转换可能导致溢出问题,尤其是在涉及到算术运算时,确保结果不会超出目标类型的数据范围。 理解这些概念对于编写高效且安全的C语言代码至关重要。在处理不同类型的数据时,正确使用强制类型转换可以避免...

    Java中强制类型转换共2页.pdf.zip

    在Java中,强制类型转换是一个重要的概念,它涉及到不同数据类型的相互转换。当我们需要将一个父类引用指向的子类对象转换为子类类型,或者将数值类型之间进行不自然的转换时,就需要进行强制类型转换。以下是对这个...

    深入分析java中的类型转换

    强制手动类型转换是指程序员明确指定的类型转换过程,通常用于较大类型向较小类型转换时,因为这可能会导致数据的精度损失或异常。 ##### 基本数据类型的强制手动类型转换 - **大→小**: 大数据类型到小数据类型的...

    VC各种类型转换,很详细啊

    2. 显式类型转换:也称为强制类型转换,是程序员明确指定的转换,用于在不安全或者需要特定行为时进行。在VC++中,显式类型转换有四种主要形式: - `(类型)`:使用括号进行类型转换,例如 `(int)5.6` 会将浮点数...

    c代码-11.强制类型转换

    在C语言中,强制类型转换是一种将一个数据类型转换为另一个数据类型的操作。这通常用于在不同类型的变量间进行操作,或在特定情况下确保数据的正确处理。在本主题中,我们将深入探讨C语言中的强制类型转换,以及如何...

    解决Java中的强制类型转换和二进制表示问题

    在Java编程语言中,强制类型转换和二进制表示是两个重要的概念,它们与程序的运行效率和数据处理紧密相关。下面将详细讲解这两个主题。 首先,我们来谈谈Java中的强制类型转换。Java是一种静态类型语言,这意味着在...

    Java3、类型转换(变量转换和方法转换).doc

    当需要将较大的数据类型转换为较小的数据类型时,就需要使用强制类型转换。强制类型转换需要通过 `(类型)` 的形式来指定目标类型。 示例: ```java int x = 100; byte y = (byte) x; // 强制类型转换 ``` 注意:...

    C语言实现数值类型转换源代码

    类型转换可以分为两种:自动类型转换(隐式转换)和强制类型转换(显式转换)。 ### 二、自动类型转换 自动类型转换是指在无需程序员干预的情况下,编译器自动完成的数据类型转换。例如,在表达式计算中,如果涉及到...

    论C语言教学中数据类型转换的问题.pdf

    - `(type)expression`:强制类型转换,将表达式的结果转换为指定的类型,但需要注意可能的精度损失或溢出问题。 - `typedef`:通过定义新的类型名来进行类型转换,例如`typedef long int LongInt; LongInt num = ...

    第02章 Java编程基础 04 基本数据类型转换

    无论是自动类型转换、强制类型转换,还是装箱与拆箱,都需要根据实际需求灵活运用,同时注意可能产生的数据精度损失和溢出问题。通过不断的实践和学习,你将能够熟练地运用这些概念来构建复杂而高效的程序。

    C++ 多种数据类型转换

    显式类型转换是程序员明确指定的转换,通常使用C-style强制类型转换 `(type)` 或 C++-style 类型转换函数 `static_cast`, `dynamic_cast`, `reinterpret_cast` 和 `const_cast`。下面我们将一一介绍: 1. **C-style...

    C++class_convert.rar_c++类型转换_类型转换

    2. **显式类型转换(强制类型转换)**:当需要明确指定转换时,程序员会使用显式类型转换。C++提供了四种显式类型转换方式: - `(类型)`:C风格的类型转换,例如 `(int)var`。 - `static_cast&lt;类型&gt;`:用于基本...

Global site tag (gtag.js) - Google Analytics