亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

allEq(BiPredicate<R, V> filter, Map<R, V> params)報空指針異常,版本有變動?

我用的是3.3.1版本的mybatis-plus,寫了相同思路的代碼,報空指針異常:

@Test
public?void?selectByWrapperAllEq4()?{
????QueryWrapper<User>?userQueryWrapper?=?new?QueryWrapper<>();
????HashMap<String,?Object>?stringObjectHashMap?=?new?HashMap<>();
????stringObjectHashMap.put("name",?"王天風");
????stringObjectHashMap.put("age",?25);
????stringObjectHashMap.put("email",?null);
????userQueryWrapper.allEq((k,?v)?->?!k.equals("name")?&&?!v.equals(25),?stringObjectHashMap);
????List<User>?userList?=?userMapper.selectList(userQueryWrapper);
????userList.forEach(System.out::println);
}

報錯為:

java.lang.NullPointerException
????at?com.example.curd.CurdApplicationTests.lambda$selectByWrapperAllEq4$4(CurdApplicationTests.java:401)
????at?com.baomidou.mybatisplus.core.conditions.AbstractWrapper.lambda$allEq$1(AbstractWrapper.java:125)
????at?java.util.HashMap.forEach(HashMap.java:1289)
????at?com.baomidou.mybatisplus.core.conditions.AbstractWrapper.allEq(AbstractWrapper.java:124)
????at?com.baomidou.mybatisplus.core.conditions.AbstractWrapper.allEq(AbstractWrapper.java:48)
????at?com.baomidou.mybatisplus.core.conditions.interfaces.Compare.allEq(Compare.java:66)
????at?com.baomidou.mybatisplus.core.conditions.interfaces.Compare.allEq(Compare.java:59)
????at?com.example.curd.CurdApplicationTests.selectByWrapperAllEq4(CurdApplicationTests.java:401)
????at?sun.reflect.NativeMethodAccessorImpl.invoke0(Native?Method)
????at?sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
????at?sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
????at?java.lang.reflect.Method.invoke(Method.java:498)
????at?org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:675)
????at?org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
????at?org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:125)
????at?org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:132)
????at?org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:124)
????at?org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:74)
????at?org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
????at?org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
????at?org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:104)
????at?org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:62)
????at?org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:43)
????at?org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:35)
????at?org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
????at?org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
????at?org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:202)
????at?org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
????at?org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:198)
????at?org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
????at?org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
????at?org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
????at?org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
????at?org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
????at?java.util.ArrayList.forEach(ArrayList.java:1257)
????at?org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
????at?org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
????at?org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
????at?org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
????at?java.util.ArrayList.forEach(ArrayList.java:1257)
????at?org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
????at?org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
????at?org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
????at?org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
????at?org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
????at?org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
????at?org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
????at?org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
????at?org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
????at?org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
????at?org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
????at?org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
????at?org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
????at?com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
????at?com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
????at?com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
????at?com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)


正在回答

2 回答

? ? ? ? 你這個錯誤的原因是存在這句stringObjectHashMap.put("email",?null);,在userQueryWrapper.allEq((k,?v)?->?!k.equals("name")?&&?!v.equals(25),?stringObjectHashMap);進行遍歷的時候,當遍歷到email時,v等于null,null調用equals報空指針異常。

0 回復 有任何疑惑可以回復我~

(k,?v)?->?!k.equals("name")?&&?!v.equals(25)這段代碼表示在遍歷Map的時候,分別對key和Value進行判斷,由于Value是null,null調用方法就會報空指針異常

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

allEq(BiPredicate<R, V> filter, Map<R, V> params)報空指針異常,版本有變動?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號