类型检查Java的任意变量和引用经过类型声明(type declaration),才能使用。我们之前见过对象数据、类数据、方法参数、方法返回值以及方法内部的自动变量,它们都需要声明其类型。Java是一种强类型(strongly typing)语言,它会对类型进行检查。如果我们错误的使用类型,将造成错...
分类:
编程语言 时间:
2014-08-22 10:45:45
阅读次数:
229
转自:http://blog.csdn.net/mldxs/article/details/8652010一、inspect模块主要提供了四种用处:(1).对是否是模块,框架,函数等进行类型检查。(2).获取源码(3).获取类或函数的参数的信息(4).解析堆栈使用inspect模块可以提供自省功能,...
分类:
编程语言 时间:
2014-08-21 18:50:34
阅读次数:
295
基类指针不能调用派生类的独有的成员,此时可以使用static_cast来转换,但不要这么做,因为向下转换难看、容易导致错误,而且使得代码难于理解、升级和维护,static_cast不会进行类型检查,即使指针指向的对象的类型与转换的目标类型不一样,比如说指针指向基类对象,转换为派生类对象,此时仍然会继...
分类:
其他好文 时间:
2014-08-21 14:36:44
阅读次数:
182
类型检查和转换
要测试某个对象是否属于某个给定的类,可以使用isInstanceOf方法,如果测试成功,你可以用asInstanceOf方法将引用转换为子类的引用
if(p.isInstanceOf[Employee]){
val s = p.asInstanceOf[Employee]
}
如果想测试p指向的是一个Employee对象但又不是其子类,...
分类:
其他好文 时间:
2014-08-20 21:10:32
阅读次数:
350
(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方式不同 define宏仅仅是展开,有多少...
分类:
其他好文 时间:
2014-08-18 21:48:42
阅读次数:
193
转载自:拈花微笑自从Java 5引入泛型之后,Java与C++对于泛型不同的实现的优劣便一直是饭后的谈资。在我之前的很多training中,当讲到Java泛型时总是会和C++的实现比较,一般得出的结论是Java使用类型擦除(type erasing),泛型信息只在编译时供javac作类型检查用,在编...
分类:
编程语言 时间:
2014-08-16 12:29:40
阅读次数:
276
托管代码 (managed code) 由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。Unmanaged Code - 非托管代码 在公...
分类:
其他好文 时间:
2014-08-12 00:14:53
阅读次数:
209
运行时的动态类型检查(RTTI,Run Time Type Indentifiation)是c++中提供的一项语言机制,它主要用于判断多态对象的具体类型。 为什么不使用c++提供的RTTI功能 但c++中直接提供的RTTI存在一些缺点。首先它提供了取得类名(typeinfo中的name函数)的功能,...
分类:
其他好文 时间:
2014-08-11 11:47:12
阅读次数:
305
(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方式不同 define宏仅仅是展开,有多少...
分类:
移动开发 时间:
2014-08-06 10:22:01
阅读次数:
206
反射——给定一个类的class实例,你可以获得Constructor,method和field实例。而且,Constructor,method和field实例
使你能够通过反射机制操作他们的底层对等体。
反射机制允许一个类使用另一个类,即使当前被编译的时候,后者还没根本不存在。然后有这种超能力是需要付出代价的:
丧失了编译时候的类型检查的好处——包括异常检查。如果通过反射调用...
分类:
其他好文 时间:
2014-08-04 18:02:27
阅读次数:
236