A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄嵘才 中级黑马   /  2012-12-29 12:09  /  1914 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我有一个问题
静态导入后就可以直接使用静态成员。
如果有多个导入,这里头有重名的成员冲突了。怎么办。

6 个回复

倒序浏览
本帖最后由 张胜格 于 2012-12-29 12:15 编辑

那就要写出具体属于哪个类了。
回复 使用道具 举报
这个时候就需要在成员前面加上包名和类名了
回复 使用道具 举报
在进行Static Import的时候,可能会出现“两个语句导入同名的静态成员”的情况,这种情况下,系统会这样处理:
1.如果两个语句都是精确导入的形式,或者都是按需导入的形式,那么会造成编译错误,这时候就只能通过指定是哪个类的方法解决,
2.如果一个语句采用精确导入的形式,一个采用按需导入的形式,那么采用精确导入的形式的一个有效,
另外如果两个同名的静态成员一个是属性,而另一个是方法,那么因为使用时的写法有差异,不会造成任何的冲突。
回复 使用道具 举报
静态导入是JKD1.5后新加的功能,一般不怎么常用,很简单给你举个例子你就能明白了,看这段代码:import static java.lang.System.out;//导入java.lang包下的System类的静态方法out;public class HelloWorld{    public static void main(String[] args){        out.print("Hello World!");//既是在这里不用再写成System.out.println("Hello World!")了,因为已经导入了这个静态方法out。    }}import xxxx 和 import static xxxx的区别是前者一般导入的是类文件如import java.util.Scanner;后者一般是导入静态的方法,import static java.lang.System.out;
回复 使用道具 举报
一般都不用静态导入,如果你使用了静态导入,有时候会以为本类中定义了这个方法,造成误解,还是用类名.方法比较好
回复 使用道具 举报
很简单啊 如果冲突了 就不得不类名.方法名   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马