我想使用Google的Guava TypeToken庫找到泛型類型。我無法找到實際的調用,使用正確的參數來提取我想要的類型。如何使用Google的Guava庫在Java中提取泛型類型
public class BaseEntity { }
public class BaseResource { }
public class EntityService<E extends BaseEntity, R extends BaseResource> { }
public class TestEntity extends BaseEntity { }
public class TestResource extends BaseResource { }
public class TestEntityService extends EntityService<TestEntity, TestResource> { }
public class EntityRsqlPredicateBuilder<
S extends EntityService<E, R>,
E extends BaseEntity,
R extends BaseResource>
{
EntityRsqlPredicateBuilder() {
// I would like to get the the class type for E (i.e. TestEntity.class)
Class<E> entityClass = ???
}
}
// in code, use EntityRsqlPredicateBuilder
EntityRsqlPredicateBuilder<TestEntityService> = new EntityRsqlPredicateBuilder();
我的備份策略只是將類傳入EntityRsqlPredicateBuilder。但是,這種類似代碼重複的情況應該已經知道。
欣賞關於如何做到這一點的任何想法。
可能重複[如何確定泛型類的類?](http://stackoverflow.com/questions/182636/how-to-determine-the-class-of-a-generic-type) – MartinS
是的,儘管我希望能用Guava TypeToken做出更好的答案。我認爲路易斯的答案提供了一個更簡單的解決方案,但與您提供的鏈接中列出的解決方案有相同的限制(使用匿名子類)。 –