Correct approach to compare `ResolvedType` with a raw `Class<?>`?
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 20/100
Direção de pesquisa
Comece pelas APIs ResolvedType e TypeResolver mencionadas na issue, especialmente resolve, getTypeParameters, getErasedType e equals. Reproduza o exemplo de GenericType e compare as abordagens raw-Class e resolved-type; o resultado deve ser uma recomendação clara para verificar se o resolved type é String, incluindo qualquer overhead relevante.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
What's the appropriate way to see if a ResolvedType represents a simple class that I know about?
Let's say I pass a new GenericType<String>{} to a method, and I just want to see if the generic parameter is String. I think (I haven't tried it yet) I would do this (code not optimized, for illustration):
void foo(GenericType<?> genericType) {
TypeResolver typeResolver = new TypeResolver();
ResolvedType resolvedType = typeResolver.resolve(genericType);
How would I then see if resolvedType indicates a simple String? I'm guessing I could do this:
if(resolvedType.getTypeParameters.isEmpty() && resolvedType.getErasedType().equals(String.class)) {
…
But that seems sort of awkward. Is there a better way?
(Note that the resolvedType.getTypeParameters.isEmpty() check is arguably not necessary here, as String has no generic parameters, but I'm looking for a general approach.)
Or should I be going in the other direction, resolving String.class and then comparing the resolved types?
if(resolvedType.equals(typeResolver.resolve(String.class))) {
…
I don't know how much overhead the extra resolution of String.class adds, though.
This may be related to #31.
- Linguagem predominante
- Java
- Estrelas
- 266
- Forks
- 53
- Merge médio
- 18h 46min
- PRs com merge (30d)
- 8
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de FasterXML/java-classmate
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
FasterXML/java-classmate#111 · 10 comentários ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
FasterXML/java-classmate#81 · 1 comentário ·
-
Make `GenericType<T>` not implement `java.lang.reflect.Type`Talvez já em andamento @cowtowncoder assumiu há 311 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
FasterXML/java-classmate#76 · 6 comentários · 1 reação ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
FasterXML/java-classmate#69 · 22 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
FasterXML/java-classmate#57 · 1 comentário ·
Todas as issues de FasterXML/java-classmate
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
apache/rocketmq-dashboard#6610 ·
Mantenedores costumam responder em até 3 dias
-
Citationcount column sorts alphabetically instead of numericallyTalvez já em andamento @kpunia306 assumiu hoje. Abertastatus: needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
JabRef/jabref#17459 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
`RedisList.reversed()` view returns an empty `range` and `trim` removes all elementsTalvez já em andamento @CCCLL assumiu hoje. Abertastatus: waiting-for-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
spring-projects/spring-data-redis#3461 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
javapathfinder/jpf-core#649 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
devops-thiago/ThrillhouseBot#1093 ·
Mantenedores costumam responder em até 1 dia