本文目錄一覽:
- 1、java中如何實現由類名動態創建對象
- 2、java怎麼根據類名稱得到一個類型
- 3、java如何通過類型名得到具體的類型
- 4、java里如何根據類名(String)返回類
- 5、在JAVA中靜態變量可以通過”類名.變量名”的方式來訪問是什麼意思.可不可以舉個例子
- 6、在java中可以用類名.方法名調用方法嗎?一般不是用對象名調用方法嗎?
java中如何實現由類名動態創建對象
首先用 Class.forName(完整類名)獲得一個Class對象clazz,然後調用Class對象clazz的newInstance()方法得到一個對象。例如:
package kown.reflect;
public class ReflectTest
{
public static void main(String[] args)
{
try
{
Class? clazz = Class.forName(“kown.reflect.Show”);
Show show = (Show) clazz.newInstance();
show.test();
} catch (ClassNotFoundException e)
{
e.printStackTrace();
} catch (InstantiationException e)
{
e.printStackTrace();
} catch (IllegalAccessException e)
{
e.printStackTrace();
}
}
}
class Show
{
public void test()
{
System.out.println(“hello world!”);
}
}
其中”kown.reflect.Show”是完整類名,就是包名加類的名字。
java怎麼根據類名稱得到一個類型
Java 提供了Class類來通過類名獲取對象。
下面請看示例:
先聲明一個Userinfo.java類。
public class Userinfo {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
聲明一個主類。
public class Test {
public static void main(String[] args) throws Exception {
@SuppressWarnings(“unchecked”)
ClassUserinfo c = (ClassUserinfo) Class.forName(“Userinfo”);
//通過newInstance()獲取對象實例。
Userinfo u = c.newInstance();
try {
System.out.println(Class.forName(“Userinfo”));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
java如何通過類型名得到具體的類型
只需要得到類型
Class a=Class.forName(“String”);
Class b=Class.forName(“Date”);
如果還需要根據得到的類型強制轉換的話jdk1.5之前的版本不支持,1.5以後可以使用泛型
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中靜態變量可以通過”類名.變量名”的方式來訪問是什麼意思.可不可以舉個例子
比如
class AB{
public static int a=0;
public int b=1;
}這個類
訪問a的話 可以直接用 AB.a 而不需要實例一個AB對象而訪問b的話需要 AB ab=new AB();先得到一個AB的實例 再用ab.b;才能訪問。
在java中可以用類名.方法名調用方法嗎?一般不是用對象名調用方法嗎?
靜態方法可以使用類名.方法名進行調用
舉例
class A{
void print(){
System.out.println(“你好”);
}
static void getNum(){
System.out.println(“2+6=”+(2+6));
}
}
public class DemoTest {
public static void main(String[] args) {
A.getNum();//靜態方法, 可以 類名.方法名直接調用
A a = new A();
a.print();//非靜態方法需要實例對象來調用
a.getNum();//靜態方法也可以實例對象來調用,但是不推薦這種方式調用靜態方法
}
}
輸出
2+6=8
你好
2+6=8
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/189898.html