1. 程式人生 > >泛型子類獲取父類的模板型別方法

泛型子類獲取父類的模板型別方法

package com.zjh.test;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

import org.junit.Test;

abstract class BaseDao <T>{
    public void getType(){
        //獲取父類型別
        Type t = getClass().getGenericSuperclass();  
        //強制轉換為泛型型別
        ParameterizedType p = (ParameterizedType) t ;  
        //獲取泛型中型別變數
        System.out.println(p.getActualTypeArguments()[0]);
        System.out.println(p.getOwnerType());
        //獲取申明的原始型別,即擦除後的型別
        System.out.println(p.getRawType());
    }
}

public class SubDao extends BaseDao<String> {
    @Test
    public void test1(){
        getType();
    }
 }

相關推薦

獲取模板型別方法

package com.zjh.test; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test; abstract class Ba

iframe頁面獲取頁面元素的方法

在iframe子頁面獲取父頁面元素   $.('#objld', parent.document); 在父頁面獲取iframe子頁面的元素   $("#objid",document.iframes('iframe').document)或$(document.g

Java反射通過class獲取型別

但是,對於獲取父類的泛型型別,還是會有辦法的。在Class類中,有這樣一個方法: /** * Returns the {@code Type} representing the direct superclass of * the entity (class, interface,

Python12(介面繼承,呼叫,多

介面繼承: 基類不用實現內部邏輯,只是為了規範子類,可以用abc模組中以新增裝飾器的方式實現 1 import abc 2 class All_file(metaclass=abc.ABCMeta): 3 4 @abc.abstractmethod 5 d

的理解(引用指向物件)

多型:要有繼承,方法的重寫,父類引用指向子類物件           ?疑問:Animal cat = new Cat(); //向上轉型。        父類引用指向子類物件,該引用不能再訪問子類新

繼承,重寫方法,運用多時呼叫重寫的方法時呼叫的還是呼叫的?

package 第五天; public class Person { public void say() { System.out.println("我是Person的say方法"); } } 子類Student如下: package 第五天; publ

利用反射獲取,介面的資訊

1.測試類: package com.example; import com.example.utils.StringUtils; import java.lang.reflect.Field; import java.lang.reflect.Inv

獲取參數工具

leg nbsp pes des code created nts pre () package com.panchan.tsmese.utils; import java.lang.reflect.ParameterizedType; import java.

繼承後想要擴展方法

保留 回調 gen obj pcl logs col 父類 sel 1 >>> class PClass(object): 2 def setInfo(self,sex=‘Male‘): 3 self.gender = se

Java訪問的私有成員變量

私有成員變量 數列 屬性和方法 訪問 標識符 不同的 不可見 重載 一份 /**子類會繼承父類所有的屬性和方法。 * 但是根據不同的權限標識符,子類不可見父類的私有變量,但可以通過父類的公共方法訪問私有變量 * 所以對於重名變量,子類和父類都各有一份。 * 對於子類和父類中

對象序列化中 構造函數的調用問題

images png http 分享 com 函數 對象 情況 序列 第三種情況: 對象序列化中 子類和父類構造函數的調用問題

java 的內部原理:擦除以及擦除帶來的問題

st2 往裏面 避免 我們 lar 屬於 util get 驚奇 一、Java泛型的實現方法:類型擦除 前面已經說了,Java的泛型是偽泛型。為什麽說Java的泛型是偽泛型呢?因為,在編譯期間,所有的泛型信息都會被擦除掉。正確理解泛型概念的首要前提是理解類型擦出(type

201671010127 2016-2017-12 程序設計之集合

obj import .cn tsa vector 變量名 dog src ceo   在第十周的程序測試題中,有一個程序在運行時發生了異常,當時老師留下該問題讓同學們自己查資料解決,我通過分析代碼和查閱資料後找到了該類問題的解決方法,接下來就和大家分享我的經歷。首先我先給

java this 調再調用已覆蓋的方法及屬性(又一次理解)

views args pop word per ews nds 如果 ext 之前一直以為 this關鍵字 是指調用者對象,但是這次才真正理解,this代表當前對象,但是指向調用者對象,其實就是多態的用法,如下所示:B 繼承了 A,在B 中調用A類的方法,在A 中用this

的通配符 extends super

gpo 安全 ret void set nag error employee air package generic; public class PairG<T> { T first; T second; public T getF

與派生指針指向對象

namespace 簡單工廠模式 為什麽 對象創建 簡單工廠 pos 釋放 自己的 分享 先看一段代碼: 1 #include<iostream> 2 3 using namespace std; 4 5 class Base{ 6 publi

Java 繼承成員中的問題

subclass 情況 討論 就會 之前 測試 public 測試結果 string   之前搞錯了,變量沒有“重寫”一說,只有方法才能被“重寫”。如果我們在子類中聲明了一個和父類中一樣的變量,那麽實際的情況是,子類的內存堆中會有類型和名字都相同的兩個變量。   現在考慮一

重寫方法

http image 父類 father 動態綁定 類的方法 動態 alt 類重寫 學到了,如圖 發現還是被重寫了 ------------------------------------------------------------------------

python 繼承__init__(轉載)

elf lpad pla 最好 就是 main 代碼 borde wid 轉載: http://www.jb51.net/article/100195.htm 前言 使用Python寫過面向對象的代碼的同學,可能對 __init__ 方法已經非常熟悉了,__init__

super 初始化例子

n) elf flag python highlight 初始 class PE bject # #重寫父類初始化 class Person(object): def __init__(self, flag=False, name="jim"):