日期:2014-05-18  浏览次数:20646 次

问个java基础问题
我没有编译环境,且有对些东西不熟悉,所以请教大家

List<dataDto01> list01 = new List();
dataDto01 a = new dataDto01();
list01.add(a);
这句话中的<>不写可以吗?
---------------------------------
另外一个问题
List<dataDto01> list01 = new List();
dataDto01 a = new dataDto01();
list01.add(a);
doMyfunction(list02,"1");

List<dataDto02> list02 = new List();
dataDto02 b = new dataDto02();
list02.add(b);
doMyfunction(list02,"2");

private void doMyfunction(List mylist, String mode){
  if ("1".equals(mode)) {
     for (dataDto01 v1:mylist) {
         System.out.println(v1.getxx());
     }
  }
  if ("2".equals(mode)) {
     for (dataDto02 v2:mylist) {
         System.out.println(v2.getxx());
     }
  }
}
会出错吗


------解决方案--------------------
你连编译环境都没有,何苦写程序
1.List接口可不写<>有编译警告
2.不能new接口改List<dataDto01> list01 = new ArrayList<dataDto01>();

------解决方案--------------------
<>内的泛型内容在编译字节码的时候会被替换,所以只是特性而非语法强制要求。
至于环境,1分钟的事情
------解决方案--------------------
引用:
LZ  你new接口 没报错吗?

是啊!楼主List<dataDto01> list01 = new List();这儿直接new接口怎么行啊,泛型不是必需要加的
------解决方案--------------------
1.List接口可不写<>有编译警告
2.不能new接口改List<dataDto01> list01 = new ArrayList<dataDto01>();


楼主你在开发工具上面试下 不久知道了啊  然后根据英文提示百度一下 就能搞定
------解决方案--------------------
这个问题,我觉得吧,属于菜鸟回答的,我是一菜鸟,在这路过,说两句:

三种可能:
@楼主没有用Java开发工具吧,用了的话,一般在编译的时候会报错的,见红的,编译通过不了,开发工具就给我们提示了。
@楼主用文本格式编辑java程序的话,虽然可以锻炼自己的查出能力,这种错误也很容易找到的,接口是不能用new来创建对象的,要用也只能创建匿名子类的对象,此时的对象属于接口的子类的实现,格式可以是:List<dataDto01> list01 = new List(){...},还有就是dataDto01这个类,类的名称第一个字母是要用大写的,其实还可以更规范一点不是。
@楼主故意抛个很初级的问题来,戏弄别人的,如果是这样,我承认自己也被你戏弄了,但无妨,花不了多长时间的。
祝你学习进步...