2012-01-07 8 views
2

Guiceのスタックトレースは非常に冗長になり、読みにくくなる可能性があります。 ...Guiceはスタックトレースのクラスパスを隠すように設定できますか?

1) No implementation for java.util.Set<com.mydomain.myapp.android.activities.catbrowser.generalizedbrowser.listview.helpers.databaseitem.itemmanipulators.ItemManipulator<com.mydomain.myapp.flash.Cat>> annotated with @com.google.inject.assistedinject.Assisted(value=) was bound. 
    while locating java.util.Set<com.mydomain.myapp.android.activities.catbrowser.generalizedbrowser.listview.helpers.databaseitem.itemmanipulators.ItemManipulator<com.mydomain.myapp.flash.Cat>> annotated with @com.google.inject.assistedinject.Assisted(value=) 

私はクラスパスを隠すことができれば、それは次のようになります:ここでは例です

1) No implementation for Set<ItemManipulator<Cat>> annotated with @Assisted(value=) was bound. 
    while locating Set<ItemManipulator<Cat>> annotated with @Assisted(value=) 

これを行うにはGuiceのを設定する方法はありますか?

答えて

2

答えはいいえです。

guice source codeを見ると、エラーメッセージの作成を担当するcom.google.inject.internal.Errorsクラスが見つかります。

new Converter<Key>(Key.class) { 
    public String toString(Key key) { 
     if (key.getAnnotationType() != null) { 
     return key.getTypeLiteral() + " annotated with " 
      + (key.getAnnotation() != null ? key.getAnnotation() : key.getAnnotationType()); 
     } else { 
     return key.getTypeLiteral().toString(); 
     } 
    } 
    } 

次のステップはTypeLiteral#toString方法を見てみることである:このクラスではKeyは、以下のように変換されることが符号化されるMoreTypes#typeToStringを構成することができない静的メソッドである

@Override public final String toString() { 
    return MoreTypes.typeToString(type); 
    } 

public static String typeToString(Type type) { 
    return type instanceof Class ? ((Class) type).getName() : type.toString(); 
    } 
関連する問題