小编use*_*413的帖子

反复实例化一个匿名类是浪费吗?

我对以下风格的代码进行了评论:

Iterable<String> upperCaseNames = Iterables.transform(
    lowerCaseNames, new Function<String, String>() {
        public String apply(String input) {
            return input.toUpperCase();
        }
    });
Run Code Online (Sandbox Code Playgroud)

该人说,每次我通过这段代码,我都会实例化这个匿名的Function类,而我宁愿在一个静态变量中有一个实例:

static Function<String, String> toUpperCaseFn =
    new Function<String, String>() {
        public String apply(String input) {
            return input.toUpperCase();
        }
    };
...
Iterable<String> upperCaseNames =
    Iterables.transform(lowerCaseNames, toUpperCaseFn);
Run Code Online (Sandbox Code Playgroud)

在一个非常肤浅的层面上,这在某种程度上是有道理的; 多次实例化一个类必须浪费内存或其他东西,对吧?

另一方面,人们在代码中间实例化匿名类,就像没有明天一样,编译器优化它是微不足道的.

这是一个有效的问题吗?

java

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

标签 统计

java ×1