我该如何知道是哪个子类调用了它的静态方法?有必要吗?
//ActiveRecord.java
[code]
public abstract class ActiveRecord {
public static int count() {
//我应该如何知道,Xxx.count()中的Xxx实际是什么类?
//假如java在此可以使用关键字class,用以表示实际调用该静态方法的类:
Class targetClass = class;
String hql = "select count(*) from " + targetClass.getSimpleName()
+ " where " + propertyName + "=?";
List list = theStaticHibernateTemplate.find(hql, value);
return (Integer) list.get(0);
}
}
[/code]
[code]
//Entity.java
@MappedSuperclass
public abstract class Entity extends ActiveRecord {
...
}
//User.java
@Entity
public User extends Entity {...}
//Topic.java
@Entity
public Topic extends Entity {...}[/code]
//XxxAction.java
[code]
public void someMethod(){
//ActiveRecord.count中的targetClass 将是User.class
int userCount = User.count();
//ActiveRecord.count中的targetClass 将是Topic.class
int topicCount = Topic.count();
}[/code]
我如何完成如上的做法?
//ActiveRecord.java
[code]
public abstract class ActiveRecord {
public static int count() {
//我应该如何知道,Xxx.count()中的Xxx实际是什么类?
//假如java在此可以使用关键字class,用以表示实际调用该静态方法的类:
Class targetClass = class;
String hql = "select count(*) from " + targetClass.getSimpleName()
+ " where " + propertyName + "=?";
List list = theStaticHibernateTemplate.find(hql, value);
return (Integer) list.get(0);
}
}
[/code]
[code]
//Entity.java
@MappedSuperclass
public abstract class Entity extends ActiveRecord {
...
}
//User.java
@Entity
public User extends Entity {...}
//Topic.java
@Entity
public Topic extends Entity {...}[/code]
//XxxAction.java
[code]
public void someMethod(){
//ActiveRecord.count中的targetClass 将是User.class
int userCount = User.count();
//ActiveRecord.count中的targetClass 将是Topic.class
int topicCount = Topic.count();
}[/code]
我如何完成如上的做法?