22import org .jetbrains .annotations .NotNull ;
33
44import java .util .function .Consumer ;
5- import java .util .function .Function ;
65import java .util .function .Supplier ;
76
87import fybug .nulll .pdconcurrent .fun .tryRunnable ;
1413 * 让开发人员无需管理并发的具体方式<br/>
1514 * {@code **read()} 方法用于申请读取方法,{@code **write()} 用于申请写入方法,只有在使用读写锁实现 {@link RWLock} 才有区别。其余实现两个之间无区别<br/>
1615 * {@code try**()} 类型的方法为可抛出异常的方法,可在传入的接口中抛出异常,但是需要指定异常的类型<br/>
17- * 也可在该类方法中传入 catch 块和 finally 块的代码,随后将不会抛出异常。
16+ * 也可在该类方法中传入 catch 块和 finally 块的代码,随后将不会抛出异常。发生异常后返回将会变为 {@code null}
1817 * <br/><br/>
1918 * 使用 {@code new**Lock()} 的方法获取不同并发管理的实例<br/>
2019 *
2423 */
2524public
2625interface SyLock {
26+
2727 /**
2828 * 申请并运行于读锁
2929 *
@@ -145,10 +145,7 @@ <E extends Exception> void tryread(@NotNull Class<E> ecla, @NotNull tryRunnable<
145145 tryread (ecla , () -> {
146146 run .run ();
147147 return null ;
148- }, (e ) -> {
149- cate .accept (e );
150- return null ;
151- }, () -> {});
148+ }, cate , () -> {});
152149 }
153150
154151 /**
@@ -167,10 +164,7 @@ <E extends Exception> void trywrite(@NotNull Class<E> ecla, @NotNull tryRunnable
167164 trywrite (ecla , () -> {
168165 run .run ();
169166 return null ;
170- }, (e ) -> {
171- cate .accept (e );
172- return null ;
173- }, () -> {});
167+ }, cate , () -> {});
174168 }
175169
176170 //------------------------------------
@@ -180,31 +174,31 @@ <E extends Exception> void trywrite(@NotNull Class<E> ecla, @NotNull tryRunnable
180174 *
181175 * @param ecla 异常的类
182176 * @param run 带返回的运行代码
183- * @param cate 带返回的异常处理代码
177+ * @param cate 异常处理代码
184178 *
185179 * @return 接口生成的数据
186180 *
187181 * @since SyLock 0.0.2
188182 */
189183 default
190184 <T , E extends Exception > T tryread (@ NotNull Class <E > ecla , @ NotNull trySupplier <T , E > run ,
191- @ NotNull Function < E , T > cate )
185+ @ NotNull Consumer < E > cate )
192186 { return tryread (ecla , run , cate , () -> {}); }
193187
194188 /**
195189 * 尝试运行于写锁
196190 *
197191 * @param ecla 异常的类
198192 * @param run 带返回的运行代码
199- * @param cate 带返回的异常处理代码
193+ * @param cate 异常处理代码
200194 *
201195 * @return 接口生成的数据
202196 *
203197 * @since SyLock 0.0.2
204198 */
205199 default
206200 <T , E extends Exception > T trywrite (@ NotNull Class <E > ecla , @ NotNull trySupplier <T , E > run ,
207- @ NotNull Function < E , T > cate )
201+ @ NotNull Consumer < E > cate )
208202 { return trywrite (ecla , run , cate , () -> {}); }
209203
210204 //----------------------------------------------------------------------------------------------
@@ -225,10 +219,7 @@ <E extends Exception> void tryread(@NotNull Class<E> ecla, @NotNull tryRunnable<
225219 tryread (ecla , () -> {
226220 run .run ();
227221 return null ;
228- }, (e ) -> {
229- cate .accept (e );
230- return null ;
231- }, finall );
222+ }, cate , finall );
232223 }
233224
234225 /**
@@ -247,10 +238,7 @@ <E extends Exception> void trywrite(@NotNull Class<E> ecla, @NotNull tryRunnable
247238 trywrite (ecla , () -> {
248239 run .run ();
249240 return null ;
250- }, (e ) -> {
251- cate .accept (e );
252- return null ;
253- }, finall );
241+ }, cate , finall );
254242 }
255243
256244 //------------------------------------
@@ -260,7 +248,7 @@ <E extends Exception> void trywrite(@NotNull Class<E> ecla, @NotNull tryRunnable
260248 *
261249 * @param ecla 异常的类
262250 * @param run 带返回的运行代码
263- * @param cate 带返回的异常处理代码
251+ * @param cate 异常处理代码
264252 * @param finall finally 块处理代码
265253 *
266254 * @return 接口生成的数据
@@ -269,12 +257,13 @@ <E extends Exception> void trywrite(@NotNull Class<E> ecla, @NotNull tryRunnable
269257 */
270258 default
271259 <T , E extends Exception > T tryread (@ NotNull Class <E > ecla , @ NotNull trySupplier <T , E > run ,
272- @ NotNull Function < E , T > cate , @ NotNull Runnable finall )
260+ @ NotNull Consumer < E > cate , @ NotNull Runnable finall )
273261 {
274262 try {
275263 return tryread (ecla , run );
276264 } catch ( Exception e ) {
277- return cate .apply ((E ) e );
265+ cate .accept ((E ) e );
266+ return null ;
278267 } finally {
279268 finall .run ();
280269 }
@@ -285,7 +274,7 @@ <T, E extends Exception> T tryread(@NotNull Class<E> ecla, @NotNull trySupplier<
285274 *
286275 * @param ecla 异常的类
287276 * @param run 带返回的运行代码
288- * @param cate 带返回的异常处理代码
277+ * @param cate 异常处理代码
289278 * @param finall finally 块处理代码
290279 *
291280 * @return 接口生成的数据
@@ -294,12 +283,13 @@ <T, E extends Exception> T tryread(@NotNull Class<E> ecla, @NotNull trySupplier<
294283 */
295284 default
296285 <T , E extends Exception > T trywrite (@ NotNull Class <E > ecla , @ NotNull trySupplier <T , E > run ,
297- @ NotNull Function < E , T > cate , @ NotNull Runnable finall )
286+ @ NotNull Consumer < E > cate , @ NotNull Runnable finall )
298287 {
299288 try {
300289 return trywrite (ecla , run );
301290 } catch ( Exception e ) {
302- return cate .apply ((E ) e );
291+ cate .accept ((E ) e );
292+ return null ;
303293 } finally {
304294 finall .run ();
305295 }
0 commit comments