當前位置:生活全書館 >

IT科技

> dynamic java

dynamic java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

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#型別中不存在的其他語言的型別。

java dynamic

缺點:

1、沒有智慧提示。

2、需要預先知道接收的資料結構。

案例分析:java中dynamic介紹@dynamic的用法,程式碼如下。

@interface Person : NSObject{undefined// must provide a ivar for our setter and getterNSString *_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{undefinedif (_name != name) {undefined[_name release];_name = [name copy];}}- (NSString *) name{undefinedreturn _name;}@end // Personint main(int argc, const charchar * argv[]){undefinedNSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];Person *a = [[Person alloc] init];a.name = @"Hello"; // Ok, use our settera.name = @"Hello, world";NSLog(@"%@", a.name); // Ok, use our getter[a release];[pool drain];return 0;} // main

標籤: java dynamic
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/5ve183.html