Java: Add Callable.getErasureStringSignature()
#8761
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I assume the intention behind
Callable.getStringSignature()
is to provide a concise representation of the signature. However, there are two problems with the representation of parameter types:Type.toString()
which has no guaranteed formatdoSomething(Function<? super Integer,? extends String>)
This defeats the purpose of
getStringSignature()
a bit. This could be solved by adjusting thegetStringSignature()
implementation, but I chose to instead add a separate predicate calledgetErasureStringSignature()
.Open questions:
getStringSignature()
,hasStringSignature(string)
andparamsString()
be deprecated?getErasureStringSignature()
, might the erasure for type variables be too error-prone? E.g. you have to know how the erasure is determined and check the bounds for the variable. On the other hand, the question is to what extend the name of a type variable can be considered an implementation detail (which might change between versions).Any feedback is appreciated!