假设我有一个getUser带有两个参数的查询- userName和password.我想要一个如下所示的mapper方法:
public UserBean getUser(String userName, String password);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以实现这样的目标吗?或者也许我应该传递我的mapper方法参数图(以及我的xml映射器中的一些parameterMap)?
public UserBean getUser(Map<String, Object> paramMap);
Run Code Online (Sandbox Code Playgroud)
我期待着一些提示和解释.
我的问题是继续这个线程: Ant:将同一个文件集复制到多个地方
我是mappers的新手.有人(carej?)可以分享使用映射器执行此操作的示例吗?这是我想要的:
parent_folder
|----child1_folder
| |----files
| |----config.file
| |----data.txt
|----child2_folder
|----child3_folder
.
.
.
|----childn_folder
我没有选择使用ant-contrib(抱歉......蚂蚁位置或任何taskdesf不在我的控制之下).所以我不知道如何循环不确定数量的文件夹.
限制我:
files在每个子文件夹下创建文件夹(通过另一个任务,如果不是复制).这是我正在尝试的(目前正在尝试单个文件,一旦开始工作,将使用其他映射器扩展):
<copy todir="/tmp/parent_folder" verbose="true">
<fileset dir="/tmp/parent_folder">
<include name="*/files/config.file"/>
</fileset>
<mapper type="glob" from="*/files/config.file" to="*/files/config.file"/>
</copy>
Run Code Online (Sandbox Code Playgroud)
口口声声说skipped - don't know how to handle it后面No sources found..
在此先感谢Parag Doke
另一个(可能是?)相关问题: 使用mapper和fileset将文件复制到不同的子目录中?
在文件夹src中,我有一组带有java源代码的子文件夹:
/a/A.java
/a/b/B.java
/a/b/c/C.java
我需要一个具有以下值的属性:
src/a/A.java,src/a/b/B.java,src/a/b/c/C.java
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
<pathconvert property="list-of-files">
<globmapper from="*" to="src/*"/>
<fileset dir=${src-folder}/>
</pathconvert>
Run Code Online (Sandbox Code Playgroud)
但我最终在我的财产上有以下价值:
src/full/path/to/folder_a/a/A.java,src/full/path/to/folder_a/a/b/B.java,src/full/path/to/folder_a/a/b/c/C.java
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成我想要的?任何输入都表示赞赏!
我有以下课程:
public class A{
List<AA> aaList;
public A(List<AA> aaList){
this.aaList = aaList;
}
//getters and setters + default constructor
public class AA {
String aaString;
public AA(String aaString){
this.aaString = aaString;
}
//getters and setters + default constructor
}
}
Run Code Online (Sandbox Code Playgroud)
我希望有两个同类的对象,让我们说:
A a = new A(Arrays.asList(new A.AA(null)));
A a2 = new A(Arrays.asList(new A.AA("test")));
Run Code Online (Sandbox Code Playgroud)
当我映射a到时a2,a2应该保留,test因为a有一个null.
我该如何配置Orika?
我尝试过类似的东西:
mapperFactory.classMap(A.AA.class, A.AA.class)
.mapNulls(false)
.byDefault()
.register();
mapperFactory.classMap(A.class, A.class)
.mapNulls(false)
.customize(new CustomMapper<A, …Run Code Online (Sandbox Code Playgroud) 我的代码中有这个:
ObjectMapper oMapper = new ObjectMapper();
Map<String, Object> objectMap = oMapper.convertValue(test, Map.class);
Run Code Online (Sandbox Code Playgroud)
我收到以下警告:
Type safety: The expression of type Map needs unchecked conversion to conform to Map<String,Object>
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
解决方案:
import com.fasterxml.jackson.core.type.TypeReference;
ObjectMapper oMapper = new ObjectMapper();
Map<String, Object> objectMap = oMapper.convertValue(prueba, new TypeReference<Map<String, Object>>(){});
Run Code Online (Sandbox Code Playgroud) 我一直试图让我的头围绕适配器模式,在所有模式中,我最难想象它的用途.
我想我明白了实现了什么,对我而言,它是将对象转换为另一个接口,以便客户端可以使用它.
在示例中,我看到它们有意义,但我觉得我可以使用一个映射器实现相同的功能,该映射器接受一个对象并将其属性(也可能应用一些逻辑)映射到所需的对象类型,因此使用真实对象.
是否存在差异,或者它们的名称是否相同?
我们在代码中使用 Jackson JSON 映射器来反序列化一些配置对象。当特定字段丢失或为空时,我们希望 Jackson 在反序列化时失败
Jackson 支持这种行为的唯一功能是原语:
final DeserializationConfig.Feature failOnPremitives = DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES;
Run Code Online (Sandbox Code Playgroud)
问题是有问题的字段主要是字符串
任何帮助都受到高度赞赏
我对 RxJava2 和流(Observable 和 Observer)有一些问题实际上,我的流返回一个错误
The mapper function returned a null value.
io.reactivex.internal.functions.ObjectHelper.requireNonNull(ObjectHelper.java:39)
io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:47)
Run Code Online (Sandbox Code Playgroud)
我的 logcat 不显示代码中断的位置。
public static Observable<List<Business.Response.Doc>> streamArticles_Business() {
NYT_TopStories_services nyt_services = NYT_TopStories_services.retrofit.create(NYT_TopStories_services.class);
return nyt_services.getArticles_Business()
.map(Business.Response::getDocs)
.filter(str -> str != null)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.timeout(20, TimeUnit.SECONDS);
}
Run Code Online (Sandbox Code Playgroud)
和我的改造得到
@GET("search/v2/articlesearch.json?q=business&api-key=" + apiKey)
Observable<Business.Response> getArticles_Business();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.nytimes.com/svc/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
Run Code Online (Sandbox Code Playgroud)
你有办法解决这个问题吗?
我有一个字符串格式的有效 UUID
7a041f81-1214-41e5-bb58-9a46b2ca08d4
Run Code Online (Sandbox Code Playgroud)
但是当我使用 aObjectMapper将其转换为 UUID 时,我不断收到此错误。
UUID uuid = mapper.readValue("7a041f81-1214-41e5-bb58-9a46b2ca08d4",UUID.class);
Run Code Online (Sandbox Code Playgroud)
错误:
com.fasterxml.jackson.core.JsonParseException:意外的字符('a'(代码 97)):预期的空格分隔根级别值 [来源:(字符串)“7a041f81-1214-41e5-bb58-9a46b2ca08d4”;行:1,列:3] 在 com.xxxx.yyyyy.zzzzz.Test.callTest(BmcEventListenerTest.java:22
如何将字符串转换为 UUID?为什么我不断收到此错误?
MapStrut 新手;对象到字符串错误:
[错误] /util/LicenseMapper.java:[11,23] 无法将属性“java.lang.Object license.customFields[].value”映射到“java.lang.String license.customFields[].value”。考虑声明/实现一个映射方法:“java.lang.String map(java.lang.Object value)”。
代码:
@Mapper
public interface LicenseMapper {
List<License> jsonToDao(List<com.integrator.vo.license.License> source);
}
Run Code Online (Sandbox Code Playgroud)
vo.license 包含具有以下属性的 CustomFields 列表
@SerializedName("Value")
@Expose
private Object value;
Run Code Online (Sandbox Code Playgroud)
Json 将一个字段作为对象输入,因为它可能是布尔值、字符串或任何其他内容,因此我已将其映射到对象中。而在 dao 层中,String 中有相同的字段。(在自定义映射器中,我只是 String.valueof 但不确定如何使用 Mapstrut 实现它)
谁能告诉我 LicenseMapper 中需要进行哪些设置才能将对象转换为字符串?
许可证结构 - 来源和目的地:
.
.
private String notes;
private Boolean isIncomplete;
private List<CustomField> customFields = null;
private List<Allocation> allocations = null;
Run Code Online (Sandbox Code Playgroud)
源中的自定义字段结构(删除了 gson 注释):
.
.
private String name;
private Object dataType;
private Object value;
Run Code Online (Sandbox Code Playgroud)
目的地中的自定义字段结构
private String name;
private …Run Code Online (Sandbox Code Playgroud)