欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中instanceof與Class的等價(jià)性代碼示例

 更新時(shí)間:2018年01月29日 10:11:05   作者:HeatDeath  
這篇文章主要介紹了java中instanceof與Class的等價(jià)性代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是java中instanceof與Class的等價(jià)性的相關(guān)問(wèn)題,具體如下。

java 中的instanceof 運(yùn)算符是用來(lái)在運(yùn)行時(shí)指出對(duì)象是否是特定類(lèi)的一個(gè)實(shí)例。instanceof通過(guò)返回一個(gè)布爾值來(lái)指出,這個(gè)對(duì)象是否是這個(gè)特定類(lèi)或者是它的子類(lèi)的一個(gè)實(shí)例。

實(shí)例1(instanceof)

接口Person

public interface Person {
public void eat();
}

實(shí)現(xiàn)類(lèi)People

public class People implements Person {
private int a=0;
 @Override
 public void eat() {
 System.out.println("======"+a);
 
 }

}

子類(lèi)xiaoming:

public class xiaoming extends People {
private String name;

@Override
public void eat() {
 System.out.println("+++++++++");
}
}

主函數(shù)

public static void main(String[] args) {
 People p=new People();
 xiaoming x=new xiaoming();
 System.out.println(p instanceof Person);
 System.out.println(p instanceof xiaoming); -----2
 System.out.println(x instanceof Person);
 System.out.println(x instanceof People);
 }

注意:上面2處的代碼在編譯時(shí)不會(huì)報(bào)錯(cuò)。

運(yùn)行結(jié)果:

true
false
true
true

實(shí)例2

package com.test.class_obj;
class Base {
}
class Derived extends Base {
}
public class FamilyVsExactType {
	static void test(Object x) {
		System.out.println("Testing x of type " + x.getClass().getSimpleName());
		System.out.println("-----------------------------------------");
		System.out.println("x instanceof Base " + (x instanceof Base));
		System.out.println("x instanceof Derived " + (x instanceof Derived));
		System.out.println("-----------------------------------------");
		System.out.println("Base.isInstance(x) " + Base.class.isInstance(x));
		System.out.println("Derived.isInstance(x) " +
		        Derived.class.isInstance(x));
		System.out.println("-----------------------------------------");
		System.out.println("x.getClass() == Base.class " +
		        (x.getClass() == Base.class));
		System.out.println("x.getClass() == Derived.class " +
		        (x.getClass() == Derived.class));
		System.out.println("x.getClass().equals(Base.class)) " +
		        (x.getClass().equals(Base.class)));
		System.out.println("x.getClass().equals(Derived.class)) " +
		        (x.getClass().equals(Derived.class)));
		System.out.println("*****************************************");
		System.out.println("*****************************************");
	}
	public static void main(String[] args) {
		test(new Base());
		test(new Derived());
	}
}

輸出內(nèi)容如下:

Testing x of type Base
-----------------------------------------
x instanceof Base true
x instanceof Derived false
-----------------------------------------
Base.isInstance(x) true
Derived.isInstance(x) false
-----------------------------------------
x.getClass() == Base.class true
x.getClass() == Derived.class false
x.getClass().equals(Base.class)) true
x.getClass().equals(Derived.class)) false
*****************************************
*****************************************
Testing x of type Derived
-----------------------------------------
x instanceof Base true
x instanceof Derived true
-----------------------------------------
Base.isInstance(x) true
Derived.isInstance(x) true
-----------------------------------------
x.getClass() == Base.class false
x.getClass() == Derived.class true
x.getClass().equals(Base.class)) false
x.getClass().equals(Derived.class)) true
*****************************************
*****************************************

Process finished with exit code 0

通過(guò)以上測(cè)試可以得出以下結(jié)論:

  • instanceof() 和 isInstance() 生成的結(jié)果相同
  • equals() 和 == 生成的結(jié)果相同
  • 父類(lèi)可以是子類(lèi)的實(shí)例,但子類(lèi)不可以是父類(lèi)的實(shí)例
  • Class 對(duì)象比較時(shí),不考慮繼承

總結(jié)

以上就是本文關(guān)于java中instanceof與Class的等價(jià)性代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • SpringBoot超詳細(xì)講解自動(dòng)配置原理

    SpringBoot超詳細(xì)講解自動(dòng)配置原理

    在進(jìn)行項(xiàng)目編寫(xiě)前,我們還需要知道一個(gè)東西,就是SpringBoot對(duì)我們的SpringMVC還做了哪些配置,包括如何擴(kuò)展,如何定制,只有把這些都搞清楚了,我們?cè)谥笫褂貌艜?huì)更加得心應(yīng)手
    2022-06-06
  • SpringBoot項(xiàng)目如何訪問(wèn)jsp頁(yè)面的示例代碼

    SpringBoot項(xiàng)目如何訪問(wèn)jsp頁(yè)面的示例代碼

    本篇文章主要介紹了SpringBoot項(xiàng)目如何訪問(wèn)jsp頁(yè)面的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • dubbo新手學(xué)習(xí)之事件通知實(shí)踐教程

    dubbo新手學(xué)習(xí)之事件通知實(shí)踐教程

    這篇文章主要給大家介紹了關(guān)于dubbo新手學(xué)習(xí)之事件通知實(shí)踐的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java實(shí)現(xiàn)貪吃蛇小游戲

    java實(shí)現(xiàn)貪吃蛇小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Java中main函數(shù)的String[]?args用法舉例詳解

    Java中main函數(shù)的String[]?args用法舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java中main函數(shù)的String[]?args用法的相關(guān)資料,JAVA類(lèi)中main函數(shù)的參數(shù)String[]?args指的是運(yùn)行時(shí)給main函數(shù)傳遞的參數(shù),文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Java中的LinkedHashSet集合解讀

    Java中的LinkedHashSet集合解讀

    這篇文章主要介紹了Java中的LinkedHashSet集合解讀,LInkedHashSet這個(gè)容器不知道大家在平時(shí)的工作用的多嗎,反正我基本上沒(méi)有用過(guò),所以,本文主要對(duì)于它的特點(diǎn)、使用場(chǎng)景、實(shí)現(xiàn)原理,做一個(gè)講解,希望對(duì)大家平時(shí)的工作有所幫助,需要的朋友可以參考下
    2023-09-09
  • Spring Native 基礎(chǔ)環(huán)境搭建過(guò)程

    Spring Native 基礎(chǔ)環(huán)境搭建過(guò)程

    Spring?Native可以通過(guò)GraalVM將Spring應(yīng)用程序編譯成原生鏡像,提供了一種新的方式來(lái)部署Spring應(yīng)用,本文介紹Spring?Native基礎(chǔ)環(huán)境搭建,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 詳解json在SpringBoot中的格式轉(zhuǎn)換

    詳解json在SpringBoot中的格式轉(zhuǎn)換

    這篇文章主要介紹了詳解json在SpringBoot中的格式轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解Java的按位操作符

    詳解Java的按位操作符

    Java的位操作符用來(lái)操作整數(shù)基本數(shù)據(jù)類(lèi)型中的單個(gè)“比特”(bit),即代進(jìn)制位。下面通過(guò)本文給大家分享Java的按位操作符,感興趣的朋友一起看看吧
    2017-09-09
  • Java動(dòng)態(tài)編譯執(zhí)行代碼示例

    Java動(dòng)態(tài)編譯執(zhí)行代碼示例

    這篇文章主要介紹了Java動(dòng)態(tài)編譯執(zhí)行代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評(píng)論