「java通过类名获取类」java通过类名获取类对象
本篇文章给大家谈谈java通过类名获取类,以及java通过类名获取类对象对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java面试题:获得一个类的类对象有哪些方式
- 2、java里如何根据类名(String)返回类
- 3、java 输入类名获取父类名
- 4、java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名
- 5、Java中类名.class和对象.getclass有什么区别?
- 6、java如何通过类型名得到具体的类型
Java面试题:获得一个类的类对象有哪些方式
给你介绍3种获得类对象方式:
第一种方式:通过类本身来获得对象
Class classname = this .getClass();
第二种方式:通过子类的实例获取父类对象
ClassName cn = new ClassName();
UserClass = cn.getClass();
Class SubUserClass = UserClass.getSuperclass();
第三种方式:通过类名加.class获取对象
Class ForClass = **.**.ClassName. class ;(类在包中的路径加. class )
第四种方式:通过类名的字符串获取对象
Class ForName = Class.forName( "**.**.ClassName" );
这种方式在jdbc中常用到。
java里如何根据类名(String)返回类
你说的根据一个字符串要得到一个类,在Java中只能使用反射机制了。反射机制很有趣的,猪名的框架spring就是大量用的反射。你可以百度Java反射机制,文章很多的。如果你不用反射技术,只能如下:
public Object getClassByName(String className){
if(className.equals("A")){
return new A();
}else if(className.equals("B")){
return new B();
}
}
java 输入类名获取父类名
java中是可以多继承的,所以子类获得父类的类名,可以使用getSuperClass()这个方法来获得,示例如下:
public class Test1 extends Date {
public static void main(String[] args) {
new Test1().test();//测试获得父类类名方法
}
public void test() {
System.out.println(Test1.class.getSuperclass().getName());//打印父类类名,使用getSuperclass()方法
}
}
java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名
可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。
import java.io.File;
import java.lang.reflect.Method;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(System.getProperty("user.dir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folder.listFiles();
for (int fileIndex = 0; fileIndex files.length; fileIndex++) {
File file = files[fileIndex];
if (file.isDirectory()) {
loop(file, packageName + file.getName() + ".");
} else {
listMethodNames(file.getName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filename.substring(0, filename.length() - 5);
Object obj = Class.forName(packageName + name);
Method[] methods = obj.getClass().getDeclaredMethods();
System.out.println(filename);
for (int i = 0; i methods.length; i++) {
System.out.println("\t" + methods[i].getName());
}
} catch (Exception e) {
System.out.println("exception = " + e.getLocalizedMessage());
}
}
}
Java中类名.class和对象.getclass有什么区别?
类名.class 的方式更加安全,例如当你要获取一个接口的class时,可以使用 类名.class 的方式获取
但此时就不能通过 对象.getClass 的方式获取了,因为接口是没有实例对象的,接口只有实现类对象,通过这种方式获取到的是接口的实现类的class,而非是接口的class
再者就是对象声明的类型未必是对象本身真正的类型,通过对象获取class容易产生混乱,因此尽量使用更加安全的方式
java如何通过类型名得到具体的类型
只需要得到类型
Class a=Class.forName("String");
Class b=Class.forName("Date");
如果还需要根据得到的类型强制转换的话jdk1.5之前的版本不支持,1.5以后可以使用泛型
java通过类名获取类的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java通过类名获取类对象、java通过类名获取类的信息别忘了在本站进行查找喔。