當前位置:編程學習大全網 - 源碼下載 - java dynamic

java dynamic

java dynamic是什麽,讓我們壹起了解壹下:

dynamic在java中是動態類型的意思,像動態代理就是利用Java的反射技術,在運行時創建壹個實現某些給定接口的新類(也稱“動態代理類”)及其實例(對象),代理的是接口,不是類,更不是抽象類。

什麽是動態類型?

了解什麽是動態類型首先我們了解靜態類型,在我們平時定義壹個int i=1就是靜態類型,靜態類型就是我們在沒有編譯的時候已經明確的知道他是壹個int類型,動態語言是我們在運行時才會知道的類型。所以我們在編寫動態類型的時候是無法使用vs的智能提示,因為編譯器也不知道他是壹個什麽類型。

dynamic?i?=?1; Console.WriteLine(i.GetType()); dynamic?str?=?"1"; Console.WriteLine(str.GetType());

使用動態類型的優缺點有哪些?

優點:

1、減少強類型的轉換。

2、延遲加載。

3、調用C#類型中不存在的其他語言的類型。

缺點:

1、沒有智能提示。

2、需要預先知道接收的數據結構。

案例分析:java中dynamic介紹@dynamic的用法,代碼如下。 @interface?Person?:?NSObject {undefined //?must?provide?a?ivar?for?our?setter?and?getter NSString?*_name; } @property?(copy)?NSString?*name; @end @implementation?Person //?@dynamic?tells?compiler?don't?generate?setter?and?getter?automatically @dynamic?name; //?We?provide?setter?and?getter?here -?(void)?setName:(NSString?*)name {undefined if?(_name?!=?name)?{undefined [_name?release]; _name?=?[name?copy]; } } -?(NSString?*)?name {undefined return?_name; } @end?//?Person int?main(int?argc,?const?charchar?*?argv[]) {undefined NSAutoreleasePool?*pool?=?[[NSAutoreleasePool?alloc]?init]; Person?*a?=?[[Person?alloc]?init]; a.name?=?@"Hello";?//?Ok,?use?our?setter a.name?=?@"Hello,?world"; NSLog(@"%@",?a.name);?//?Ok,?use?our?getter [a?release]; [pool?drain]; return?0; }?//?main

  • 上一篇:唐駿的兒子多大?叫什麽名字?
  • 下一篇:什麽叫期貨空頭頭寸和期貨的多頭頭寸?頭寸是什麽意思?
  • copyright 2024編程學習大全網