本文目录一览:
java可以使一个类的方法的参数这整个类中使用吗?
不可能,方法的参数的作用范围就是方法体内,类中不能共享因为不可见。
如果想要达到共享的目的,干脆就弄个成员变量,那样传进去就行了。
还是关于java泛型的问题:在静态方法中为什么不能引用类级别的类型参数?
你好,我觉得最主要的原因是因为泛型擦除。
class DemoT {
public void add(T t) {
//...
}
}
编译后通过反编译:
D:testjavap -s -p Demo
Compiled from "Demo.java"
public class Demo extends java.lang.Object{
public Demo();
Signature: ()V
public void add(java.lang.Object);
Signature: (Ljava/lang/Object;)V
}
所以,非静态方法正是由于需要先有对象,进而在使用泛型的时候可以确定安全检查的限制条件。
DemoString d = new DemoString() ;
d.add("str") ; //这里你就只能添加String类型的。
而静态方法不需要构件对象,所以他在调用方法是,根本没有判断参数的约束条件,所以虚拟机压根就不希望这种事情发生,所以在编译时就报错了。
JAVA参数中能使用void吗?
不行.
明摆着是语法错误...
void是关键字,但不是所有关键字都能做返回类型.(如:int可以,extends/package就不行了)
即使你写成:
void f(void a){
...
}
好像在模仿
void f(int i){
...
}