weixin_慕娘6405100
char和byte遍历出来显示有问题
萌新淡金
和我一样,强迫症,不想看到最后有逗号。
for(int j=0;j<paramsType.length;j++){
System.out.print(paramsType[j].getSimpleName());
if(j<paramsType.length-1){
System.out.print(",");
}
}
梦幻逍遥IT
假设是Hello类,先Class c = Hello.class获取类类型 Method[] mm = c.getMethods()或c.getDacledMethods();
getMethods 获取所有public方法 包含继承所得
getDacledMethods 获取本类自己声明的所有方法
在for循环中迭代方法数组
for(int i = 0; i < mm.length; i++){
Class[] paramType = mm[i].getParameterTypes(); //此处获取方法的参数列表 数据类型的类类型
//自行迭代参数类型的类类型数组paramType即可
}
qq_慕移动5102182
还是要所了解基础
菜鸟几号
int是基本数据类型,Integer是int的包装类,int的类类型就是Class c1=int.Class;里面的c1。int类的类型就是指Integer包装类里面包含的类型
Nomo_Air
int.class == Integer.TYPE
讲道理,int是基本类型,不是类,也称不上对象,int.class这种写法不对。但是如果你这么用了,其实就是去取对应包装类的class,JVM会自动封装成包装类。
申申申申申
我明白了,是因为返回值类型不同
年少不知谁轻狂
方法参数的类型会用到基本数据类型的class
慕粉2310038863
main方法中不能用类的名称直接点方法,应该用这个类的实例对象去获取工具类的方法
new ClassUtil().printClassMessage(s);
慕姐5756316
万事万物皆对象这句话没错,而private,public是java中的标识符,修饰符,并不是对象。例如: 美丽的石蝴蝶,我们能说“美丽的”是对象吗?这里的美丽的只是用来形容我们的对象——"蝴蝶"。类似的,private表示私有的,例如:private int age 表示 私有的年龄。
再则java中,private,public还有default 是权限修饰符可以修饰类,属性和方法。关于private,public,default你可以去看看基础讲解,我就不再细说了。
氧化的灵魂
我不知道快捷键是什么,不过我知道怎么生成文档注释。
在类方法上输入/** 然后敲回车就出来了,当然对于类一样有效
慕粉230130748
纳尼!!!!!!!!!!
嘻哈4176158
得到类类型就是一个具体的对象,然后才能调用各种方法,没有具体的对象你怎么操作呢?
慕设计9979531
因为Void这个类的无参构造方法是私有的(private),如图所示

因为 new 对象的时候需要调用这个构造方法,但是私有的无法访问到,就调用不了,所以就无法通过new的方式来创建类的实例化对象,即使用类的类类型的newInstarce()方法来实例化对象也会抛出异常,如图所示

总结:构造方法的访问修饰符为私有的(private)的时候,就无法实例化该类了,除非重构个公开的有参构造方法,并调用这个有参的构造方法来实现实例化类的对象。
如下,创建一个Student类
public class Student {
private Student() { // 私有的无参构造方法
}
public Student(String name) { // 重构一个 公开的 有参 构造方法
System.out.println(name);
}
}实例化对象时如下图所示。

要做Java大师
首先说下package, 一个java项目采用的是package方式管理class,它的目的是方便管理
不会有class这种类文件(二进制文件)。
视频里也说了8种基本数据类型都有自己的.class字节码文件,而void其实也可以看作是一个数据类型,是空类型,
方法返回值为空,所以也有。
不知道你指什么类里声明
花花5
因为不管是什么类型,java.lang.Class类型都是他们的根类型,就和Object是所有类的父类类似.
没有指定泛型时,集合中的元素默认都是Object,道理是一样的。
qq_迷茫狂人_03711589
int和Integer不是相同的东西 如果你用Integer.class去getName 返回的也就带包名了
安卓9527
c是Foo类型的类类型,Foo是Class的实例对象.
慕九州6166061
Class类的实例是类的类型 所有类的对象都是一个类型 这样理解不知道对不对
v随心v
其实eclipse自带了完整而全面的配置功能,进入路径为:Preferences–>Java–>Code Style–>Formatter–>New(取个自己想要的名字)–>右边的Edit,这个界面里面有丰富的java代码格式化配置功能,上图的配置就只需要把Indentation中的Align field in columns勾上即可。其他的一些配置都可以在这里找到,而且该界面提供了丰富的所见即所得的配置效果
慕前端0336099
”for(int i=0;i<=ms.length;i++)“这句就有问题啊!数组的范围是0--(x-1);length为x,所以不能用<=,应该是<
慕斯卡4106679
/*
* Method类,方法对象
* 一个成员方法就是一个Method对象
* getMethods()方法获取的是所有的public的函数,包括父类继承而来的
* getDeclaredMethods()获取的是所有该类自己声明的方法,不问访问权限
*/
Method[] ms = c.getMethods();//c.getDeclaredMethods()
for(int i = 0; i < ms .length ;i ++){
//得到方法的返回值类型的类类型
Class returnType = ms[i ].getReturnType();
System. out.print(returnType .getName()+" ");
//得到方法的名称
System. out.print(ms [i ].getName()+"(");
//获取参数类型--->得到的是参数列表的类型的类类型
Class[] paramTypes = ms[i ].getParameterTypes();
for (Class class1 : paramTypes) {
System. out.print(class1 .getName()+",");
}
System. out.println(")" );
}
}
码农_鑫森淼焱垚
double是一个基本类型
Double它是一个类,就好比是对double类型的封装,内置很多方法可以实现String到double的转换,以及获取各种double类型的属性值
Wae_Chan
Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。Java 编译器在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而泛型约束加快。Java 允许对个别泛型的类型参数进行约束,包括以下两种形式(假设 T 是泛型的类型参数,C 是一般类、泛类,或是泛型的类型参数):T 实现接口 I 。T 是 C ,或继承自 C 。一个泛型类不能实现Throwable接口。
lt123
小贱贱9395
void 是数据类型,例如一个方法范围一个void,或者返回一个int类型,这里就可以看出void是一个类型
这个问题我不清楚我是这么理解的,double是个基础类型,他和Double这个类型并不是一种所以double.class 和Double.class不是同一种类类型
NobodyUnderstandBS
Class[] paramTypes=ms[i].getParameterypes();可以调用paramTypes[i].isArray()判断参数是否是数组
旖旎心情
任何类型都是继承object类的,所以最起码就有一个object类型。
你定义静态成员时,不是用 static 类型 变量,这个格式吗?
遗弃的八音盒
这个其实用不用静态方法都可以,这里面之所以使用静态方法,是觉得该方法就是一个常用的方法,不属于某个对象特别的行为。比如求数学绝对值的方法,Math.abs(9),这个abs方法就是一个静态方法,它就是求绝对值这样一个运算,一般我们把这种方法可以定义为静态。再举一个例子,Cat类,里面有一个eat()方法,指的是某个具体的Cat对象在eat(),这时就不适合使用静态方法了。
codecoisne