2014-12-19 46 views
1

我從http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/這個簡單的RxJava語句爲什麼不運行?

複製學習RxJava和粘貼自己的Hello World的例子給出了一個編譯錯誤說的方法不會覆蓋一個超類。所以,我用同樣的例子,但有Eclipse中產生的「通話」的方法:

Observable<String> myObservable = Observable.create(
      new Observable.OnSubscribe<String>() { 

       public void call(Subscriber<? super String> arg0) { 
        // TODO Auto-generated method stub 
        System.out.println("Hi"); 

        arg0.onNext("Hello, world!"); 
        arg0.onCompleted(); 
       } 
      } 
     ); 

運行上面的代碼不顯示任何信息,驗證調用方法不會被調用。

我的build.gradle文件:

apply plugin: 'java' 
apply plugin: 'eclipse' 

sourceCompatibility = 1.5 
version = '1.0' 
jar { 
    manifest { 
     attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version':  
version 
    } 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2' 
    testCompile group: 'junit', name: 'junit', version: '4.+' 
    compile 'io.reactivex:rxjava:1.0.0' 
} 

test { 
    systemProperties 'property': 'value' 
} 

uploadArchives { 
    repositories { 
     flatDir { 
      dirs 'repos' 
     } 
    } 
} 

如果有人能鏈接rxjava或rxandroid一個偉大的,直觀的教程,將太感激。

回答

2

它不輸出任何內容,因爲您沒有撥打subscribe。再次閱讀帖子,你會發現下面的代碼:

myObservable.subscribe(mySubscriber); 
// Outputs "Hello, world!" 
+0

謝謝。如果我將@Override註釋添加到任何回調中,我注意到eclipse顯示編譯時錯誤。 IDE不會將回調識別爲匿名類的超類中的方法。 – MarcusH 2014-12-21 03:22:48

相關問題