首页 > 编程知识 正文

包含java中是怎样通过类名的词条

时间:2023-12-28 21:10:45 阅读:328546 作者:TVSP

本文目录一览:

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

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