1. 程式人生 > >父類獲取子類泛型

父類獲取子類泛型

public class Parent<T> {
    // 用於接收傳遞的clazz
    private Class clazz;

    // 獲取子類傳遞給他的具體泛型型別
    public Parent() {
        // 1獲取子類的class(在建立子類物件的時候,會返回父類的構造方法)
        Class<? extends Parent> clazz = this.getClass(); // Student
        // 2獲取當前類的帶有泛型的父類型別
        ParameterizedType type = (ParameterizedType)
clazz.getGenericSuperclass(); // 3返回實際引數型別(泛型可以寫多個) Type[] types = type.getActualTypeArguments(); // 4 獲取第一個引數(泛型的具體類) Person.class this.clazz = (Class) types[0];//原文連結中的一處錯誤是沒有新增 "this" } }

相關推薦

獲取

public class Parent<T> { // 用於接收傳遞的clazz private Class clazz; // 獲取子類傳遞給他的具體泛型型別 public Parent() {

如何獲取傳遞的

str 父類 image 轉載 class argument pretty edge pub 權聲明:本文為博主原創文章,未經博主允許不得轉載。package com.reflect.other; import java.io.Serializable; /** *

JAVA在獲取傳遞的參數

throw oca abstract () current 全部 getclass back charset 最近在開發微信代扣,涉及大量HTTP調用微信,就寫了一個泛型模板,將序列化,反序列化,HTTP調用全部整合至泛型基類中. public abstract cla

Java取得傳遞的引數Class型別

import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test

JAVA的多----轉換問題

JAVA語言中, 物件變數是多型的 每個子類物件都算是父類物件(子類物件可以當作父類變數所引用) 那反過來可不可以呢? 答案是取決於父類變數引用的是誰 如果父類變數引用的是子類物件的例項, 可以通過強轉被子類變數引用 如果父類變數引用的是父類物件的例項,則不能被為子類變數引用

C#訪問成員

要處理的問題是父類物件不能訪問子類物件的欄位。 進入正題: 有兩個類,一個父類一個子類。解決的問題是要在例項化之後可以訪問子類成員。 父類: public class Student { public string school; } 子類: public cla

Java多中過載方法引數分別為時的疑惑

問題: 程式碼如下: class A { public String show(D obj){ return ("A and D"); } public String show(A obj){

獲取在介面或者上定義的型別

通過Class類上的 getGenericSuperclass() 或者 getGenericInterfaces() 獲取父類或者介面的型別,然後通過ParameterizedType.getActualTypeArguments() 可以得到定義在類或者介面上的泛型

Java | 獲取中所有的對應的class型別

一般獲取具體某個類的class型別,直接呼叫 getClass()方法或者 .class。但是在一些抽象類 或者 介面中,我們需要獲得泛型對應的class型別,以上方法就不再適用。比如以下場景,想獲得AbstractServiceImpl中的三個泛型型別: /

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

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

JavaSE8基礎 當中的成員變量重名了,使用super.名字 來訪問的成員變量

public xtend tca ima his window logs java brush os :windows7 x64 jdk:jdk-8u131-windows-x64 ide:Eclipse Oxygen Release (4.7.0)

有相同成員變量時的例子

log out 程序 main tcl ext 裏的 .get bsp 今天看到一個有趣的程序,如下: public class Test { public static void main(String[] args){ B b=n

C#中之間相互轉換

mage all spa 分享 mic ack 子類 utl round 所用到的類文件:Person.cs:Student.cs:Teacher.cs:問題1:總結:1 父類不能直接強制轉換成子類2 只有父類對象指向子類,那麽父類是可以強制轉換成子類,如果父類對象沒有指向

關於CSS中的定位使用相(絕對位置和相對位置)

需求 style 主頁 計算機 美化 情況下 mar head div 關於CSS中的定位使用子絕父相(子類絕對位置和父類相對位置) 前言:最近在學習JavaWeb前端的CSS,關於CSS中的定位有時候可能會使用到子絕父相,由於本人的水平有限如果有什麽地方說錯了,請指出

Java中的轉換問題

自己在自學安卓,學的過程中遇到了不少困難,從中意識到自己的java知識不夠紮實而導致,為此分享一下自己的java知識,一來是鞏固知識,二來是給一些也在學java的同學共享共享! 首先先看個例子: class A { public A() { } } class B exte

宣告例項化物件詳解

測試程式碼: public class Employee { public String name; public String getType(){ return "Employee"; } } public class Manager extends Employee{

java 間轉換

1.子類轉父類,無需強轉,只能呼叫父類與子類中同時擁有的變數: class MyBase{ int a=5; } public class zhuan1 extends MyBase{ int a=3; int b=8; public static void main(String[]

java中宣告例項化

問題: 1、比如兩個類父類:Person 子類 Student extends Person在使用時候,這樣寫:Person person=null; //宣告物件person=new Student(); //建立物件這樣看來 宣告的時候,是父類,而在產生物件的時候,實際的物件是子類。怎麼理解

java中的關係和使用

在java中規定:一個父類可以有多個子類,但是一個子類只能有一個父類。子類可以通過extends關鍵字來繼承父類。做個比較通俗的比喻,就像一個父親可以有多個親孩子,但是一個孩子只能有一個親生父親。 1.繼承以及重寫:子類繼承父類是對父類屬性和方法的全面繼承,同時子類

Java繼承中建構函式的問題

Java子類繼承父類在例項化時預設呼叫的是父類的無參建構函式,不論例項化時呼叫的是子類的有參還是無參建構函式,可以參考這篇Java子類例項化總是呼叫父類的無參構造方法 1、當父類沒有顯式定義構造方法時,編輯器會預設為此類新增一個隱式無參建構函式。此時子類可以有自己的無參和有參構造方法。 2、