關于java中getClass()和getSuperClass()的講解

為了講解這個問題,我們先來看一下下面的代碼:

?

package com.yonyou.test;import java.util.Date;class Test extends Date{private static final long serialVersionUID = 1L;public static void main(String[] args) {new Test().print();}public void print(){System.out.println("當前運行類的名字為:"+super.getClass().getName());System.out.println("當前運行類的名字為:"+this.getClass().getName());System.out.println("當前運行類的繼承的父類的名字為:"+this.getClass().getSuperclass().getName());}
}

上面代碼的輸出結果什么樣的呢?
?也許你需要上機調試一下,因為有些不確定,下面我們就一起來分析一下:

上機調試后發現運行的結果為:

當前運行類的名字為:com.yonyou.test.Test
當前運行類的名字為:com.yonyou.test.Test
當前運行類的繼承的父類的名字為:java.util.Date

先來分析一下getClass()究竟返回的是什么:

插卡jdk的源碼可以看到如下內容:

/**
* Returns the runtime class of this {@code Object}. The returned
* {@code Class} object is the object that is locked by {@code
* static synchronized} methods of the represented class.
*
* <p><b>The actual result type is {@code Class<? extends |X|>}
* where {@code |X|} is the erasure of the static type of the
* expression on which {@code getClass} is called.</b> For
* example, no cast is required in this code fragment:</p>
*
* <p>
* {@code Number n = 0; }<br>
* {@code Class<? extends Number> c = n.getClass(); }
* </p>
*
* @return The {@code Class} object that represents the runtime
* class of this object.
* @see <a href="http://java.sun.com/docs/books/jls/">The Java
* Language Specification, Third Edition (15.8.2 Class
* Literals)</a>
*/
public final native Class<?> getClass();

一定要看上面注釋中的藍色部分的英文注釋,意思是返回對應的當前正在運行時的類所對應的對象,那么super可以理解為Test的父類Date,

那么請問當前Date類正在運行時的對象是誰?沒錯,就是其子類Test,所以this.getClass(0.getName()和super.getClass().getName()返回的

都是com.yonyou.test.Test

再看看getSuperClass()的源碼

/**
* Returns the <code>Class</code> representing the superclass of the entity
* (class, interface, primitive type or void) represented by this
* <code>Class</code>. If this <code>Class</code> represents either the
* <code>Object</code> class, an interface, a primitive type, or void, then
* null is returned. If this object represents an array class then the
* <code>Class</code> object representing the <code>Object</code> class is
* returned.
*
* @return the superclass of the class represented by this object.
*/
public native Class<? super T> getSuperclass();

?

沒錯,這里藍色標注的才是返回當前實體類的父類。所以要返回當前類的父類的話,請使用下面這中方式

super.getClass().getSuperClass().getName();

?

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449853.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449853.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449853.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

期權回測框架設計思路

期權回測&#xff0c;博主已經研究了很長時間&#xff0c;也接觸了不少平臺&#xff0c;如真格&#xff0c;以及這位博主提供的思路&#xff08;https://blog.csdn.net/luoqingyong/article/details/107523930&#xff09;&#xff0c;利用backtrader進行期權回測。確實國內做期…

UVA815

這道題主要學到的就是數據結構的組織&#xff0c;一些需要從小到大排列的東西&#xff0c;這些東西還有對應的東西。這個時候使用map可以解決 下面貼出代碼。其中所使用的思想&#xff0c;估計這個東西是沒法學的&#xff0c;這就只能是靈感 //這是什么吉爾題&#xff0c;題意都…

我對應聘者的面試原則

最近參與了幾次單位招聘面試工作&#xff0c;在面試工程師時&#xff0c;我是用我的分層準則指導與候選人的交流內容&#xff0c;以確定他的能力層次是否達到我所期望的。大體上軟件工程師可以分為三大層次&#xff0c;分別是技術知識積累層、掌握設計方法層以及運用開發方法論…

rsync:基本命令和用法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 2.1 說在前面的話 rsync官方網站: https://www.samba.org/ftp/rsync/rsync.html rsync是可以實現增量備份的工具。配合任務計劃&#…

Java常見排序算法之堆排序

在學習算法的過程中&#xff0c;我們難免會接觸很多和排序相關的算法。總而言之&#xff0c;對于任何編程人員來說&#xff0c;基本的排序算法是必須要掌握的。 從今天開始&#xff0c;我們將要進行基本的排序算法的講解。Are you ready&#xff1f;Let‘s go~~~ 1、排序算法的…

python量化數據處理小細節2

處理數據主要使用的是DataFrame格式&#xff0c;偶爾也會有list格式。 首先定位尋找數據&#xff1a;主要為loc&#xff0c;iloc 創建DataFrame&#xff1a; df pd.DataFrame([1,2,3,4,5],index [a,b,c,d,e],columns[aa])或 datapd.DataFrame(np.arange(16).reshape(4,4),i…

python編碼問題

參考&#xff1a;https://blog.csdn.net/qq_33692803/article/details/81321340 注意區分系統默認編碼和本地默認編碼、編碼和解碼的區別轉載于:https://www.cnblogs.com/jianglinliu/p/10418437.html

軟件工程師所需掌握的“終極技術”是什么?

最近&#xff0c;我在微博上看到程序員鄒欣老師發的一條微博 — “不少大學同學都有一個想法&#xff1a;先做幾年技術&#xff0c;然后做管理&#xff1b;也有一些同學說&#xff1a;我技術不行&#xff0c;希望直接找到一個管理的工作&#xff0c;就像PM那樣。請看 PM 需要什…

linux中項目部署和日志查看

1 查找進程 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 ps -ef | grep java 查看所有關于java的進程 root 17540 1 0 2009 ? 01:42:27 /usr/java/jdk1.5.0_1…

dspmq dspmqver command not found(dspmq命令找不到,dspmqver主安裝目錄設置不正確

[rootrhv6-64b ~]# su - mqm -bash-4.1$ dspmq -bash: dspmq: command not found&#xff08;dspmq命令找不到&#xff09; -bash-4.1$ dspmqver&#xff08;dspmqver主安裝目錄設置不正確&#xff09; AMQ8594: WebSphere MQ commands are no longer available in /usr/bin. I…

lambda表達式與委托與線程初步談論-基于劉鐵錳視頻觀后操作

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;//線程 using System.Threading;//引用線程方法namespace ConsoleApplication2 {class Program{static void Main(string[] args){//委托詳解//Func返回…

2020-11-21

獲取數據后&#xff0c;需要對數據進行合并&#xff0c;通常是日期&#xff0c;也有對相同公司進行合并 下面就研究數據合并的常用方法&#xff1a; 目錄appendmergeon屬性how屬性&#xff08;inner&#xff0c;outer&#xff0c;left &#xff0c; right&#xff09;indicato…

走技術線,還是技術管理線?

最近因為要給剛畢業的學生做一次演講&#xff0c;所以就職業發展這類話題先以寫博客的形式做一些思考&#xff0c;希望屆時能給同學們帶來質量更高的內容。我在《駕馭你的“職場布朗運動”》一文中談了25條職場感悟并提出了“走技術線&#xff0c;還是技術管理線&#xff1f;”…

[Nikon D80]櫻花盛開的校園

花開花落&#xff0c;陽春三月&#xff0c;隨身背著相機在學校里游走&#xff0c;不斷的尋找視角。知道自己拍的不好&#xff0c;總覺得自己拍的片有各式各樣的缺陷&#xff0c;也許這就是大師與學徒的區別吧。用好手頭的裝備&#xff0c;出好片&#xff0c;鍛煉Visual Effect …

「LG2664 樹上游戲」

題目 這真是一道神仙的一批的題目 定義\(s(i,j)\)表示從點\(i\)到點\(j\)經過的顏色數量 設 \[sum_i\sum_{j1}^ns(i,j)\] 求出所有的\(sum_i\) 考慮點分治 對于一個點我們用兩種方式來統計其答案 這個點作為分治重心時&#xff0c;分值區域內所有點到這個點貢獻這個點不是分治重…

DUBBO 使用問題記錄

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 官方ISSUE參考 https://github.com/alibaba/dubbo/issues 注冊中心ZookeeperRegistry.doSaveProperties warn 2014-10-1419:56:51WARN …

真格量化學習處理——幾個功能小函數

真格這周是學習使用了不少,功能算是很不錯,但在做的時候也發現了一個問題: 數據缺失:我在做回測,要求獲取每天的delta值,并從中篩選條件值時,報錯,顯示無數據。不得不使用pass,影響我的回測連貫性。 現在開始講下,我做的幾個功能函數: 算起來,挺煩的,就是各種細節…

軟件技術發展的驅動力

軟件產品的終極目標是為了實現用戶需求從而滿足人們的需要。也正是為了不斷滿足人們的需要使得軟件行業不斷向前發展。比如&#xff0c;新的算法&#xff08;MPEG-1、MPEG-2、MPEG-4、H.264、……&#xff09;等的出現都在當時為了滿足不同的需要而被發明。然而&#xff0c;人們…

The Model Driven Software Network

國外的一個模型驅動軟件開發的討論社區&#xff0c;The Model Driven Software Network這個社區討論的都是模型驅動開發相關的話題&#xff0c;雖然建立不久&#xff0c;但加入的人越來越多&#xff0c;建立群組的是Mark Dalgarno以下是一些討論: Textual v Graphical models W…

無敵簡單快速的文件服務器sgfs

前言 想要構建一個Linux文件服務器&#xff1f;看看下面幾個要求是不是你想要的&#xff1f; 1、只需要單節點部署就夠了 2、部署啟動簡單&#xff0c;下載之后&#xff0c;一鍵啟動&#xff0c;一鍵關閉 3、不需要任何其他的依賴安裝&#xff0c;而且運行時占用內存資源少 4、…