哈哈,自学真是障碍重重啊,请高手指点一下下面的问题,谢谢!
是不是不能在void方法中打印外面的带参数的方法(该方法返回一个结果)?
具体请看一下下面的代码。问题在注释里,请用通俗一点的方法帮解决一下,谢谢啦!
这段代码呢,运行没问题,就是想搞明白注释里的问题。
*************************
import java.util.List;
import java.util.LinkedList;
import java.util.Collections;
class LinkedListUse{
List <String> objList = new LinkedList <String> ();
void add(){
objList.add("Aljdh jhk");
objList.add("Awedg jhjk");
objList.add("Bdgsh gsk");
objList.add("Gfdf Legh");
objList.add("Hefgh oisj");
System.out.println(objList);
}
void search(char ch){
for(int ctr =0;ctr<objList.size();ctr++){
String str = objList.get(ctr);
if(str.charAt(0)==ch){
System.out.println(str);
}
}
}
void shuffle(){
System.out.println("混排前的顺序是: "+objList);
Collections.shuffle(objList);
System.out.println("混排后的顺序是: "+objList);
/*
请问,在这里为何不能用双斜线注释部分的形式,而只能先Collections.shuffle(objList)再打印objList?
为什么不能直接用System.out.println("混排后的顺序是: "+Collections.shuffle(objList));
*/
//System.out.println("混排后的顺序是: "+Collections.shuffle(objList));
}
}
class LinkedListUseDemo{

public static void main(String [] args){
LinkedListUse llu = new LinkedListUse();
llu.add();
llu.search('B');
llu.shuffle();
//System.out.println(llu.add());
/*
请问,在这里为何不能用双斜线注释部分的形式,?
为什么不能直接用System.out.println(llu.add())?这样的话会有些麻烦啊,并不一定是在所有调用add方法的时候
都想把他打印出来,可能有的地方只是想调用一下,并不想打印,有的地方呢又需要打印,这种矛盾如何解决,谢谢!
*/
}
}
**************************
下面是报错的状态:
此处不允许使用 "void" 类型
     System.out.println(llu.add());

解决方案 »

  1.   

    Collections.shuffle(objList)返回值是void
      

  2.   

    自己查下PrintStream类中有没这个重载方法println就行了
      

  3.   

    //System.out.println("混排后的顺序是:   "+Collections.shuffle(objList)); 
    //Collections.shuffle(objList),方法不带返回,自然是不能打印了,直接在使用该方法后打印objList就可以了Collections.shuffle(objList);       //此方法已经对对象做了更改
    System.out.println("混排后的顺序是:   "+objList); //llu.add(),也是同样的原因,直接在方法后打印llu即可
    System.out.println(llu);
      

  4.   

    谢谢大家热心的回答,楼上的(aunty_flybird),用你的办法System.out.println(llu);行不通啊,因为因为实例llu和实例objList好像还不太一样,objList是有内容的,我通过add方法往里面添加了内容,但是llu呢,是一个空的实例,他没有内容,他只是通过llu.add();调用了objList,本身并没有被写入内容,所以打印出来的只是是类名:LinkedListUse@757aef。
    这怎么解决啊。