2 yaoyao520toto yaoyao520toto 于 2013.11.03 14:32 提问

List list = (List) new File(""); 为什么编译能通过?

List list = (List) new File("");
System.out.println(list instanceof List);
以上两段为什么编译能通?求大神解答...

1个回答

en_joker
en_joker   2018.01.15 14:32

编译时,你都强制认为他是集合了,当然可以通过了。
运行时,才会具体分析。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
List list = new ArrayList()等接口 new 实现类()的作用
List是一个接口,而ArrayList是List接口的一个实现类。ArrayList类继承并实现了List接口。 因此,List接口不能被构造,不能创建实例对象,但是我们可以像下面这样为List接口创建一个指向自己的对象引用,而ArrayList实例对象就在这充当了这个指向List接口的对象引用。 接口 a = new 实现类();这是多态的一种形式。我们知道父类或者接口中没有的方法,但是子
为什么是List list = new ArrayList(),而不直接用ArrayList
工作的时候,同事遇到这样一个问题,我也只是知道个大概,网上搜罗,这就整理一下。       编程是要面向对象编程,针对抽象(接口),而非具体     List 是接口,ArrayList是实现     实现List接口的有ArrayList、LinkedList、Ve
为什么不能通过new List()方式创建对象
在java.util里面List是一个接口,所以不能直接初始化,所以会编译错误 你可以List l =new ArrayList();这样是可以的,因为 ArrayList是实现List接口的 或者List l = new LinkedList(); LinkedList同样实现了List接口 我们一般使用List都是new ArrayList();
java file list
java file list java io file list shengsiyuan
时间转换工具
*@list System.out.println(new DateUtil().changeFirstDayOfWeek()); *@list System.out.println(new DateUtil().changeLastDayOfWeek().setDateFormat("EE").toString()); *@list System.out.println(new DateUtil().setDate(1921,23,12).changeFirstDayOfMonth().toString()); *@list System.out.println(new DateUtil("2192-4--1 0:0:0","yyyy-MM-dd HH:mm:ss").changeLastDayOfMonth().getWeekOfYear()); *@list System.out.println(new DateUtil().changeFirstDayOfYear().toString()); *@list System.out.println(new DateUtil().changeLastDayOfYear().toString()); *@list System.out.println(new DateUtil().getWeekOfYear());
java考试题及答案
1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ? A ArrayList myList=new Object(); B List myList=new ArrayList(); C ArrayList myList=new List(); D List myList=new List();
File类中的list方法
------- android培训、java培训、期待与您交流! ---------- 一、list() 返回一个字符串数组,是制定目录下的文件夹名和文件名 File file =new File("d:\\aaa");// File里封装的必须是目录 而且必须存在 否则数组会被赋值为null String[] names= file.list();//若是文件或不存在 list
JAVA_利用流克隆List
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList;
声明l集合为什么常用List list=new ArrayList()
1、List list=new ArrayList(); 2、ArrayListlist=new ArrayList(); 第一种用接口接收,不能调用 ArrayListz中自定义的方法, 第二种可以调用ArrayList 中自定义的方法, 第一种是大多时候的写法,这也是面向接口编程思想,能规范使用,而且易于扩展。
List<?> list= new ArrayList<?>为什么这样写 接口引用指向实现类的对象
接口的灵活性就在于“规定一个类必须做什么,而不管你如何做”。我们可以定义一个接口类型的引用变量来引用实现接口的类的实例,当这个引用调用方法时,它会根据实际引用的类的实例来判断具体调用哪个方法,这和上述的超类对象引用访问子类对象的机制相似。 [java] view plain copy   //定义接口InterA   interface InterA