Solve Java warning "Raw use of parameterized class" #7904
Merged
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.
What is it?
Description of the changes in your PR
I made sure there was no raw use of parameterized classes. Raw means without <> when the class requires it.
<?>
forCacheData
since the cache mapLRU_CACHE
can contain items cache data of different typesJsonSink
with the actual classes being passed to functions. This may decrease the generality of the functions having such items as parameters, since they would work for anyJsonSynk
but are actually only called with one type ofJsonSink
each time. Maybe just usingJsonSink<?>
is better? (btw, the definition ofJsonSink
is recursive for some reason...:public interface JsonSink<SELF extends JsonSink<SELF>>
)BaseListInfoFragment
now has two parameters: the item type to be shown in the list (I extends InfoItem
), and the list info type (previouslyI extends InfoItemsPage
without<>
, now renamed toL extends InfoItemsPage<I>
). This propagated to all subclasses and allowed solving problems in all of them.AbstractInfoPlayQueue
I turned the rawListInfo
inListInfo<StreamInfoItem>
(if you look at the class, it assumes the list info provides stream info items, and strange things were already being done to cast). I also removed an unused <> parameterU
(no idea why that existed, its usage only in an unused constructor made no sense), refactored the constructors to deduplicate code for subclasses and refactored a method to use Java streams.<Type>
where it was missingBaseListFragment
andStreamItemAdapter
APK testing
The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR.
Due diligence