導航:首頁 > 編程語言 > 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反射例子相關的資料

熱點內容
java中exceptionin 瀏覽:880
java131 瀏覽:866
學英語不登錄的app哪個最好 瀏覽:299
安卓的後台運行怎麼設置 瀏覽:135
如何撰寫論文摘要以及編譯sci 瀏覽:416
安卓如何使用推特貼吧 瀏覽:429
怎樣避免程序員入獄 瀏覽:856
蘋果方塊消除安卓叫什麼 瀏覽:535
安卓世界征服者2怎麼聯機 瀏覽:297
國企招的程序員 瀏覽:969
哪個app可以看watch 瀏覽:518
dns備用什麼伺服器 瀏覽:1002
中達優控觸摸屏編譯失敗 瀏覽:80
上海科納壓縮機 瀏覽:680
python工時系統 瀏覽:551
查好友ip命令 瀏覽:118
通達信python量化交易 瀏覽:506
cnc編程工程師自我評價 瀏覽:132
書本文件夾夾子怎麼安 瀏覽:803
如何更改編譯器的背景 瀏覽:86