没有合适的资源?快使用搜索试试~ 我知道了~
Damaer#Coding#instanceof用法详解1
需积分: 0 0 下载量 38 浏览量
2022-07-25
14:35:09
上传
评论
收藏 7KB MD 举报
温馨提示
试读
1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什
资源推荐
资源详情
资源评论
# 1. instanceof关键字
如果你之前一直没有怎么仔细了解过`instanceof`关键字,现在就来了解一下:
`instanceof`其实是java的一个二元操作符,和`=`,`<`,`>`这些是类似的,同时它也是被保留的关键字,主要的作用,是为了测试左边的对象,是不是右边的类的实例,返回的是boolean值。
```java
A instanceof B
```
注意:`A`是实例,而`B`则是`Class类`
下面使用代码测试一下:
```java
class A{
}
interface InterfaceA{
}
class B extends A implements InterfaceA{
}
public class Test {
public static void main(String[] args) {
B b = new B();
System.out.println(b instanceof B);
System.out.println(b instanceof A);
System.out.println(b instanceof InterfaceA);
A a = new A();
System.out.println(a instanceof InterfaceA);
}
}
```
输出结果如下:
```java
true
true
true
false
```
从上面的结果,其实我们可以看出`instanceof`,相当于判断当前**对象**能不能装换成为该类型,`java`里面上转型是安全的,子类对象可以转换成为父类对象,接口实现类对象可以装换成为接口对象。
对象`a`和`Interface`没有什么关系,所以返回`false`。
那如果我们装换成为Object了,它还能认出来是哪一个类的对象么?
```java
public class Test {
public static void main(String[] args) {
Object o = new ArrayList();
System.out.println(o instanceof ArrayList);
String str = "hello world";
System.out.println(str instanceof String);
System.out.println(str instanceof Object);
}
}
```
上面的结果返回都是`true`,也就是认出来还是哪一个类的对象。同时我们使用`String`对象测试的时候,发现对象既是`String`的实例,也是`Object`的实例,也印证了`Java`里面所有类型都默认继承了`Obejct`。
但是值得注意的是,我们只能使用对象来`instanceof`,不能使用基本数据类型,否则会报错。
![]
点击阅读更多
资源评论
咖啡碎冰冰
- 粉丝: 11
- 资源: 292
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功