2015-04-24 72 views
-1

我想傳遞類之間的一些信息,如成功或失敗,失敗的原因,缺失的數據等 但我不知道哪個是正確的方式來做到這一點。此外,我無法將信息作爲參數傳遞,因爲我需要將其恢復。由於已有返回值,因此無法返回任何值。 例如:假設我有類這樣的(它只是啞代碼的實際代碼很長)如何在對象之間傳遞數據

class A { 
    B b = new B(); 
    C c = new C(); 
    b.putData(); 
    c.putData(); 

    //Want to print all the inforamtion of what happend 
    //in methods of putData and getData. How to do that? 
} 

class B { 

    boolean putData() { 
     D d = new D(); 
     Data data =d.getData(); 
     //some code goes here 
    } 
} 
Class C{ 
    boolean putData() { 
     //some code here 
    } 
} 
+0

傳遞一個對象作爲參數? – jean

+1

'想要以最簡單的方式爲您感興趣的值添加System.out.println(...)'語句,打印putData和getData.'方法中發生的所有事件的信息。更好的方法:更改你的問題要清楚你想要達到什麼目的。 – SubOptimal

+0

對不起,我忘記提及我無法傳遞參數,因爲我必須將其恢復,這是我無法完成的,因爲所有方法都已返回一些對象。 – ABYS

回答

0

看看下面的代碼可以幫助你。

class A { 
    B b = new B(); 
    C c = new C(); 
    String resultClassB = b.putData(); 
    String resultClassC = c.putData(); 

    System.out.println(resultClassB); 
    System.out.println(resultClassC) 

    //Want to print all the inforamtion of what happend 
//in methods of putData and getData. How to do that? 
} 

class B { 

    String putData() { 
    D d = new D(); 
    String data =d.getData(); 
    //some code goes here 

    return data' 

} 

} 
Class C { 
    String putData() { 
    //some code here 
    String result = "reason for failure and success"; 
    return result' 
    } 
} 

class Data(){ 
    String getData(){ 
     String data = "get all data to print using some logic"; 
     return data; 
    } 
} 
+0

感謝E_net4的幫助。我可以使用getter方法。但是,如果你可以幫助一些小的示例代碼,我仍然會很感激。 – ABYS

+0

只是擡起頭來:那不是我的答案。我寧願將數據分開放入不同的方法中。 –

0

您可以使用try {} catch(Exception){}在出現問題時獲取信息。

Succes將是一個有效的返回對象。

class A { 
      B b = new B(); 
      C c = new C(); 
      b.putData(); 
      try 
      { 
       c.putData(); 
      } 
      catch(Exception e) 
      { 
       //do error handling, or print stacktrace 
      } 

      //Want to print all the inforamtion of what happend 
     //in methods of putData and getData. How to do that? 
     } 

    class B { 

     boolean putData() { 
      D d = new D(); 
      Data data =d.getData(); 
      //some code goes here 
     } 
    } 
     Class C{ 
     boolean putData() throws Exception{ 
      if(<data_missing>) throw new Exception("Data missing"); 
     } 
} 
+0

請問打印信息的目的是什麼?你真的需要它在代碼中,還是你想創建一個記錄器? – JohannisK