Comments (3)
I found a workaround (documented in StackOverflow post), but this may pop up as a common issue for people with the constructor formatted the way it is. In my case, the object returned by my network service is a Map with various Objects (Strings, Integers, ArrayLists, etc.) from an XML-RPC call and so I need to use the generic class type Map<String, ? extends Object>
for the result type in SpiceRequest
.
from robospice.
Hi @jeffdgr8,
this problem is not really related to RoboSpice itself but to a limitation of the Java syntax : there is no litteral that you can use to get the class/type of a parametrized generic type in Java.
If you want to do something like
public class ListTweetRequest extends SpiceRequest<List<Tweet>> {
public ListTweetRequest(Object cacheKey ) {
super( <Here is the problem>, cacheKey );
}
}
then you can't pass the class List<Tweet>.class
to you parent constructor. That's really a Java limitation as generics are realized using type erasure and List<Tweet>.class
has no real meaning in Java.
The best and cleanest work around is to use an intermediate type like :
public class ListTweet extends List<Tweet> {
}
public class ListTweetRequest extends SpiceRequest<ListTweet> {
public ListTweetRequest(Object cacheKey ) {
super( ListTweet.class, cacheKey );
}
}
This has the advantage to provide you with a real type that you can pass to the SpiceRequest's constructor. But beware of obfuscation. In thoses cases, proguard will try to remove the ListTweet class, you have to explicitly preserve it from obfuscation.
from robospice.
OK, thank you for the info. That is helpful.
from robospice.
Related Issues (20)
- proguard warning HOT 1
- Getting a Callback after Fragment has been detached
- Retrofit throwing exceptions for every single call HOT 2
- Caching skipped if List sub-type is involved HOT 2
- Is This library still maintained ? HOT 5
- robospice usecase: external rest-service returns null
- Could not find class 'com.octo.android.robospice.persistence.ObjectPersister' HOT 4
- Best Practice for design to connect to multiple services
- Robospice and binary post requests? HOT 5
- response headers missing? HOT 4
- removeDataFromCache(Class clazzm, Object cacheKey) not working on 1.4.13
- BigBinaryRequest with customized headers/interceptors.
- Android O background service limitations HOT 5
- Download a file with query params HOT 1
- java.lang.NoSuchMethodError: No virtual method No virtual method open(Ljava/net/URL;)Ljava/net/HttpURLConnection; HOT 10
- Build failed on windows (android studio2.23 @win7 64-bit), but no problem on Mac. HOT 4
- RoboSpice within the MVVM pattern HOT 2
- How to log api response time at common place? HOT 1
- Android O (8.1.0) : invalid channel for service notification HOT 8
- Xmlrpc Request
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from robospice.