導航:首頁 > 編程語言 > java反射例子

java反射例子

發布時間:2025-01-19 20:45:50

java 泛型對象能實例化嗎T t=new T()

java中沒法得到泛型參數化類型,因為在編譯期沒法確定泛型參數化類型,也就找不到對應的類位元組碼文件,自然就不行了
泛型反射的關鍵是獲取ParameterizedType,再調用它的getActualTypeArguments()方法獲得實際綁定的類型。但注意public class BookManager<Book>是不能被反射的,因為擦拭法的緣故。只有在Superclass 或者成員變數(Field.getGenericType())等有函數返回ParameterizedType的時候才能成功反射,

你要麼搞個構造函數把參數類型傳進去才行

⑵ c#或java里子類對象賦值給父類有什麼用,舉幾個例子啊。

里氏替換原則:

定義一:如果對每一個類型為S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序P的行為沒有發生變化,那麼類型S是類型T的子類型。
定義二:所有引用基滑租類的地方必須能透明地使用其子類的對象。

大概的要求是:

1、父類對象指向子類實例,向上轉型和向下轉型是里氏替換的一種應用。

2、子類必須完全實現父類的方法,父類對象出現的地方都可以用子類對象進行替換。

這是里氏替換的主要內涵,下面對這兩種體現分別進行代碼舉例。

定義一個抽象類Person:

public abstract class Person{

public abstract String getDetails();

}

用Student類來繼承Person

public class Student extends Person{

private String stuName;

private int age;

private double score;

public Student() {

super();

// TODO Auto-generated constructor stub

}

public Student(String stuName, int age, double score) {

super();

this.stuName = stuName;

this.age = age;

this.score = score;

}

@Override

public String getDetails() {

// TODO Auto-generated method stub

return this.stuName + this.age + this.score;

}
}

在Test類裡面可以用:

Person person = new Student();//這舉笑是向上轉型。

也可以定義:

Student student = new Student(「stu」,19,99);

可以將student對象用在所有應該使用Person類型的地方。

Private List<Person> person = new ArrayList<Person>信答兆();

Person.add(student);

⑶ java語言,什麼是初始化啊初始化和實例化一樣嗎

java中不管對象也好,還是基本數據類型也好,你聲明它的時候,它們都稱為變數,在你使用變數前給變數進行賦值,這就是變數的初始值,因此叫變數初始化。

實例化是指對象的創建,一般是指通過 new 關鍵字(當然還有其他途徑,比如反射),在堆中為對象分配內存,這就是實例化。舉個非常簡單的例子,你知道飛機會飛,但飛機在你腦海里只是個概念,當真的把飛機製造出來,變成實實在在的,存在於物質世界(java中稱內存)的東西時,你才能用它來飛。如果在物質世界(內存)中根本就不存在,那就無法使用。因此,實例化可以說將概念(類),變成實際存在(內存中存在)的過程就稱為實例化。

⑷ 求Java自學視頻 從基礎教程到進階實例,萬分感謝啊 。

詳細,包含知識點多的,你可以看看動力節點java基礎視頻大全。裡面有很多深入且精彩的講解,比如源碼分析分析講的特別到位,尤其是HashMap的工作原理和源碼分析,真正的把jdk源碼翻了一遍,要是拿著這個去面試絕對是秒殺級神器。

⑸ 求java工廠模式的一個簡單代碼例子,盡量簡單

這個應該比較簡單一點。

某系統日誌記錄器要求支持多種日誌記錄方式,如文件記錄、資料庫記錄等,且用戶可以根據要求動態選擇日誌記錄方式。現使用工廠方法模式設計該系統,並寫出相應Java代碼。


interface Log{

public void writeLog();

}


class FileLog implements Log{

public void writeLog(){

System.out.println("文件記錄");

}

}


class DatabaseLog implements Log{

public void writeLog(){

System.out.println("資料庫記錄");

}

}


interface LogFactory{

public Log createLog();

}


class FileLogFactory implements LogFactory{

public Log createLog(){

return new FileLog();

}

}


class DatabaseLogFactory implements LogFactory{

public Log createLog(){

return new DatabaseLog();

}

}


public class Client{

public static void main(String[] args) {

try{

Log log;

LogFactory factory;

//這里可以改成使用DOM和Java反射機制讀取XML文件,獲取工廠類名

factory=new DatabaseLogFactory ();

log=factory.createLog();

log.writeLog();

}

catch(Exception e){

System.out.println(e.getMessage());

}

}

}

閱讀全文

與java反射例子相關的資料

熱點內容
排課走班源碼 瀏覽:222
程序員剛畢業去了小公司有發展嗎 瀏覽:90
速騰怎麼安裝安卓手機互聯 瀏覽:143
linux設備驅動程序代碼 瀏覽:301
伺服器的功耗怎麼看 瀏覽:651
app組件哪裡找 瀏覽:87
androidqq紅包 瀏覽:412
伺服器如何傳輸 瀏覽:456
如何快速將多個文件夾快速解壓縮 瀏覽:114
程序員睡前都在想什麼 瀏覽:37
少兒編程技能培訓心得 瀏覽:458
白命令 瀏覽:816
headfirstjavapdf 瀏覽:552
廣數980t怎麼編程 瀏覽:592
無邪app在哪裡下載 瀏覽:462
mac自帶php目錄 瀏覽:632
海淘小程序源碼 瀏覽:750
哪裡下載蘇寧秒達app 瀏覽:643
androidcmnet 瀏覽:31
易語言標題源碼 瀏覽:948