[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[aspectj-users] the codes cannot be compiled.
|
The compiler for The line 7 and Line 12 complains that
[iajc] D:\workdir\DPsample2\main\src\com\designpattern\singleton\RegSinglet
onProtocol.aj:12 [error] incompatible return type applying to constructor-call(v
oid com.designpattern.singleton.RegSingleton.<init>())
[iajc]
[iajc] D:\workdir\DPsample2\main\src\com\designpattern\singleton\Main.java:
7 [error] incompatible return type applying to constructor-call(void com.designp
attern.singleton.RegSingleton.<init>())
[iajc] System.out.println( new RegSingleton() );
[iajc] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[iajc] D:\workdir\DPsample2\main\src\com\designpattern\singleton\RegSinglet
onProtocol.aj:12 [warning] advice defined in com.designpattern.singleton.RegSing
letonProtocol has not been applied [Xlint:adviceDidNotMatch]
[iajc] Singleton around() : call((Singleton+).new(..))
[iajc] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
public aspect RegSingletonProtocol {
private Hashtable singletons=new Hashtable();
public interface Singleton{}
declare parents : RegSingleton implements Singleton;
Singleton around() : call((Singleton+).new(..)) // line 12
{
Class singleton=thisJoinPoint.getSignature().getDeclaringType();
if(singletons.get(singleton)==null){
singletons.put(singleton, proceed());
}
return (Singleton)singletons.get(singleton);
}
}
//
public class Main
{
public static void main(String [] args)
{
System.out.println( new RegSingleton() ); // Line 7
}
}
//
public class RegSingleton
{
private static int count=0;
public RegSingleton()
{
count++;
System.out.println("Class No. "+count);
}
}
What's wrong with the above codes.
Thanks
guofeng