有人说没有用到的 import 语句会被忽略,真的这样吗?

背景

有人说没有用到的 import 语句会被忽略,真的这样吗? 本工程寻求真相

结论

  • 没有用的 import 语句,在编译过程不会被忽略,比如把 java.util.List 改成 java.util.List2 就会编译失败
  • 假设有 java.util.List 这个没用到的语句,编译出来的class 再反编译回java,会看到这个语句没有了

这个仅仅说明反编译转件会把没有用的import 语句在反编译的时候没有体现出来。不能说明多余的import语句在编译过程会被忽略,实际我长久以来的经验认为是不会被忽略的,况且前面已经证明了故意写错的、多余的 import 语句会在编译过程抛出错误,足以证明 “多余import语句不会在编译过程被忽略”

测试用的代码

package com.wyf.test;
import java.util.List;// 没用到的import

public class Hello {
	
	public static void main(String[] args) {
		System.out.println("Hello");
	}
}

思考

如果要进一步分析,可以 javap -v -p 分析其字节码。我看到的有 import java.util.List; 和没有是完全一样的结果。

但是这并不动摇结论,无用的import语句影响了编译能不能成功,你并不能反编译后看到没有了import语句就认为编译的过程其不起作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值