java - 从变量创建和使用类

标签 java

这是对这个问题的跟进:Create new class from a Variable in Java

我想加载一个基于有效字符串变量的类,但我无法调用它的任何方法。

我有多个类都实现了相同的接口(interface),例如

class Foo implements Bar {
    private String username = null;

    public String getUsername() {
        return this.username;
    }
}

现在我想在不知道它是哪个类的情况下实例化该类,然后对其调用 getUsername()

String a = "Foo";
Class<?> c = Class.forName(a);
Object object = c.newInstance();
System.out.println(object.getUsername());

这导致

Error:(74, 15) java: cannot find symbol

symbol: method getUser()

location: variable object of type java.lang.Object

如果我把它投给类

Foo foo = (Foo) object;

它可以工作,但我不能这样做,因为我不知道类(class)的名字。

有没有办法做到这一点,或者这完全是一种虚假的尝试?

最佳答案

您应该将其转换为您的界面:Bar object = (Bar) c.newInstance()

关于java - 从变量创建和使用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37300830/

相关文章:

java - 如何使用几个线程完成大量作业,并为每个线程提供相同的超时完成时间?

Java - 将形状添加到框架

java - Java.Util.Calendar 值的任意分配

java - 如何从以下响应 : mapDATA=={title=I Talk, id=5df, order_no=null, type=i_talk, is_speaker=0} 中获取值?

java - 如何将包含 LocalDate 字段的 json 转换为可反序列化格式?

java - android java.lang.NoClassDefFoundError : org. bouncycaSTLe.crypto.engines.AESEngine api 16

java - 如何并行处理多个任务并等待每个任务的成功失败

java - 如何从重定向 View 中获取对象?

java - 从类定义中删除 final 会破坏向后兼容性吗?

java - 当kafka消费者轮询返回空记录时?