不管怎样的事情,都请安静地愉快吧!这是人生。我们要依样地接受人生,勇敢地大胆地,而且永远地微笑着——卢森堡
前两天给mybatis-plus
贡献了代码
https://gitee.com/baomidou/mybatis-plus/pulls/192
这里用到了一个注解SafeVarargs
我们在使用动态参数+泛型的时候,会提示来自形参化 vararg 类型的可能的堆污染
例如:
我们这里加上@SafeVarargs
后发现它只能加在final
或者static
修饰的方法上:
不加的话会编译错误
再放几个例子吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| package com.ruben.simplescaffold;
import org.junit.jupiter.api.Test;
import java.util.Arrays; import java.util.List; import java.util.Optional;
public class Tests {
@Test void contextLoads() { }
@SafeVarargs static void function(List<String>... stringLists) { }
abstract static class BaseUser implements UserInterface {
@SafeVarargs final <T> void gamma(T... ts) { }
@Override @SafeVarargs public final void method(Optional<Object>... optionals) { UserInterface.super.method(optionals); } }
interface UserInterface {
default void method(Optional<Object>... optionals) { }
@SafeVarargs static <T> void gamma(Class<T>... classes) { } }
}
|