CDIおよびJBoss 7.1.1でJSF 2.1を使用しています
スーパークラス変数にCDIを注入しprincipal
て派生クラスにキャストすることは可能ですか? 例MyUserPrincipal
では派生クラスです。私が書く@Inject Principal principal
と、デバッグ(およびオーバーロードされたtoString()メソッド)から、MyUserPrincipal
プロキシクラスが変数に注入されることがわかりますprincipal
。しかし、このインスタンスをインスタンスにキャストできませんでしたMyUserPrincipal
。
問題を解決するための私の2つの試みの下:
public class MyUserPrincipal implements Principal, Serializible{
MyUserPrincipal (String name){
}
public myMethod() { }
}
//Attempt 1:
public class MyCdiClass2 implements Serializable{
//MyUserPrincipal proxy instance will be injected.
@Inject Principal principal;
@PostConstruct init() {
MyUserPrincipal myPrincipal = (MyUserPrincipal) pincipal; //<--- Fails to cast! (b)
myPrincipal.myMethod();
}
}
//Attempt 2:
public class MyCdiClass1 implements Serializable{
@Inject MyUserPrincipal myPrincipal; //<---- Fails to inject! (a)
@PostConstruct init() {
//do something with myPrincipal
}
}