public class TryVariableArgumentList{
public static void main(String[] args){
printAll(2, "two" , "four", 5.0,"four point five");
printAll();
printAll(26,"Anything",true,4E6,false);
}
public static void printAll(Object ... args){
for(Object arg : args){
System.out.print(" " + arg);
}
System.out.println();
}
}
如果删除printAll方法定义前的static关键字后,编译器报错提示:non-static method printAll(java.lang.Object...)can't be referenced from s static context.
请问,这里的static context是指实参吗,为什么静态方法不能这么处理呢?谢谢大家的解答。
解决方案 »
- 菜鸟求助。希望能给个思路。或代码注释、
- 打开一个模态JDialog,怎么才让父窗体在dialog关闭后才得到其返回值
- 急需帮助:请问java.net.SocketException: Too many open files,这个异常会在什么时候扔出
- 关于异常的错误,朋友帮我解释下啊
- 如何将java文件编译成unix下的可执行文件,解决必给分
- jsp显示Excel文件的问题
- catch 提示被另一catch块隐藏!
- 新手求教,在eclipse里 图片路径的问题。求指导
- JAVA版的兄弟,我要学JAVA了,大家给我指点迷津吧,如何入门呀!!!编辑工具哪个最牛!
- 一个问题解决了,另一个问题又来了。呀!websphere,我恨,恨,恨...!
- 这个代码数组越界 为什么?
- 如何给java数组循环附值
当然,不使用类一级的也可以,不过得先创建实例public class TryVariableArgumentList{
public static void main(String[] args){
TryVariableArgumentList o = new TryVariableArgumentList();
o.printAll(2, "two" , "four", 5.0,"four point five");
o.printAll();
o.printAll(26,"Anything",true,4E6,false);
}
public void printAll(Object ... args){
for(Object arg : args){
System.out.print(" " + arg);
}
System.out.println();
}
}
我还有些对“类一级”的概念不是很懂,是指什么意思啊?
比如
TryVariableArgumentList.putAll(); // 就是直接调用 TryVariableArgumentList 的类一级的(静态)方法
而
new TryVariableArgumentList().putAll2(); // 就是先生成TryVariableArgumentList的对象实例,在调用此对象实例的方法比如:
public class TryVariableArgumentList {
// 此方法必须先创建对象的实例才能访问
public String hello(){
return "Hello world! ";
}
// 此方法可以直接访问,也就是可以在 main里面直接调用
public static String helloGloble(){
return "Hello Globle!";
} public static void main(String[] args){
TryVariableArgumentList.helloGloble();
new TryVariableArgumentList().hello();
}
}