Comments (4)
This is tricky to support, because AutoValue just special-cases immutable collections and does a bunch of things under the hood to check if it's applicable. On top of that, not all of them are types that we can reasonably support. Here's another case that autovalue supports that we can't:
@JsonClass(generateAdapter = true, generator = "avm")
@AutoValue
public abstract class Foo {
public abstract ImmutableList<String> getBar();
public static Builder builder() {
return new AutoValue_Foo();
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder setBar(String... barElements);
public abstract Foo build();
}
}
It is supported by the underlying overloads of ImmutableSet.copyOf(...)
, but we can't reuse that infrastructure here the way autovalue can. I think the only safe solution we can suggest is to declare a second setter with the exact type.
from auto-value-moshi.
Thanks, that makes a lot of sense. Auto-value-moshi 0.4.7 didn't seem to have this problem... I'm assuming because the builder was not used for deserialization. In my use case, I only need to serialize. It might be nice if there was a way to have certain properties be ignored for serialization or deserialization only, and thereby negating the mismatched types issue. At present, it seems that @AutoTransient
acts on the property during both serialization and deserialization.
from auto-value-moshi.
Moshi intends to be symmetric. The “only one type of serialization” idea has been discussed many times and every time the conclusion is the same: write your own adapter if you don’t want a symmetric library to be symmetric :)
from auto-value-moshi.
Fair enough, thanks.
from auto-value-moshi.
Related Issues (20)
- MoshiJsonAdapter is not generated if #jsonAdapter(Moshi) is not public HOT 2
- Unresolved reference for AutoValue MoshiJsonAdapter HOT 1
- NoSuchMethodError: com.google.auto.common.MoreTypes.equivalence()
- Unable to build when implement the generic class HOT 4
- Support of default values using builders HOT 7
- autovalue moshi builder support does not work for optionals HOT 5
- Fails to generate adapter factory for inner class
- Generated Factory does not handle generated adapters HOT 1
- Use JsonAdapter nonNull() for nonnull checks
- Generic base types cause compile errors HOT 1
- please publish auto-value-moshi-runtime: HOT 2
- incorrect adapter created when using annotation for variable serialization HOT 2
- Gradle runtime dependency name incorrect in README.md HOT 1
- please upload new snapshot version to maven. HOT 8
- Parcelable auto value entities are being generated incorrectly with the 1.0.0 version HOT 9
- runtime artifact accidentally published as annotations HOT 6
- java poet 1.12.0 HOT 5
- Nullable fields not serialized HOT 1
- Failed to resolve: com.ryanharter.auto.value:auto-value-moshi-runtime:1.0.0 HOT 1
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 auto-value-moshi.