Skip to content

Commit 91e2bd0

Browse files
修改说明
1 parent 2847af1 commit 91e2bd0

1 file changed

Lines changed: 18 additions & 28 deletions

File tree

src/main/java/fybug/nulll/pdconcurrent/SyLock.java

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import org.jetbrains.annotations.NotNull;
33

44
import java.util.function.Consumer;
5-
import java.util.function.Function;
65
import java.util.function.Supplier;
76

87
import fybug.nulll.pdconcurrent.fun.tryRunnable;
@@ -14,7 +13,7 @@
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
*
@@ -24,6 +23,7 @@
2423
*/
2524
public
2625
interface 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

Comments
 (0)