小编Ton*_*ony的帖子

静态通用方法

你能解释为什么以下有效吗?

public class GenericsTest<T> {

    public void doSomething(T v1, T v2) {

    }

    public static <T> void doSomethingStatic(T v1, T v2) {

    }

    public static <T> void doSomethingStaticList(List<T> v1, List<T> v2)
    {

    }

    public static void main(String[] args) {
        GenericsTest<String> gt = new GenericsTest<>();

        // OK
        gt.doSomething("abc", "abc");

        // Not OK
        gt.doSomething(1, "abc");

        // OK
        doSomethingStatic(1, 2);

        // Still OK
        doSomethingStatic(1, "abc");

        // So why is this not OK?
        List<String> list1=new LinkedList<>();
        List<Integer> list2=new LinkedList<>();
        doSomethingStaticList(list1,list2);
    }
}
Run Code Online (Sandbox Code Playgroud)

T v1, …

java generics

29
推荐指数
2
解决办法
1万
查看次数

Java编译器可以重新排序函数调用吗?

我知道java编译器实际上可以重新排序代码指令.但java可以重命令函数调用吗?

例如:

...
//these lines may be reordered
a=7;
b=5;
...
//but what about this?
callOne();
callTwo();
Run Code Online (Sandbox Code Playgroud)

java compiler-optimization

10
推荐指数
1
解决办法
235
查看次数

已知非空值的冗余空值检查或 findbugs 中可能存在的错误

这是代码:

public static String readFile(InputStream is) {

        try (Scanner scanner = new Scanner(is); Scanner delimitedScanner = scanner.useDelimiter("\\A");) {
            return scanner.hasNext() ? scanner.next() : "";
        }
    }
Run Code Online (Sandbox Code Playgroud)

findbugs 插件说:

已知非空值的冗余空检查 此方法包含对已知非空值与常量 nul 的冗余检查

并指出这一点:

return scanner.hasNext() ? scanner.next() : "";
        } //this line contains bug!!!
    }
Run Code Online (Sandbox Code Playgroud)

看图:

在此处输入图片说明

eclipse 显示相同的警告:

在此处输入图片说明

java findbugs

5
推荐指数
1
解决办法
3280
查看次数

标签 统计

java ×3

compiler-optimization ×1

findbugs ×1

generics ×1