首页 > 编程知识 正文

为什么不能在参数中使用java,方法对于参数不适用

时间:2023-12-29 20:31:52 阅读:330842 作者:SXNT

本文目录一览:

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){

...

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。