【问题标题】:Getting the class from its fully qualified name从类的完全限定名中获取类
【发布时间】:2014-06-04 12:06:00
【问题描述】:

我需要翻译一个String,它的值类似于"com.foo.Foo",但我需要获取位于那里的类并在其中调用一个方法。

public static void command(String name, String scriptfolder) 

这是方法的签名

谢谢

【问题讨论】:

  • 什么?我不明白你的问题。需要获取字符串的类吗?
  • 一个好的问题总会产生一个好的答案。你应该清楚你问什么!
  • {ClassName}.class.getSimpleName();

标签: java string class


【解决方案1】:

你试过了吗

Class.forName("com.foo.Foo");

编辑: 要调用静态方法,您需要执行以下操作:

Class clazz = Class.forName("com.foo.Foo");    
Method method = clazz.getMethod("methodName", String.class);
Object o = method.invoke(null, "whatever");

这取决于您的方法及其参数。有关更多信息,请参见反射教程: http://docs.oracle.com/javase/tutorial/reflect/

【讨论】:

  • 没想到这么简单。
  • 只是你追求的课程吗?
  • 是的,它有一个静态方法,我需要调用
  • @curlip 您可以使用反射来调用此方法。如果您想获得准确和正确的答案,也应该发布您的所有要求。
  • 认真的吗?您无法阅读 JamesB 的答案并了解如何将我给您的内容融入其中?
【解决方案2】:

如果你想翻译一个保存在字符串中的类名,你必须在寻找

Class.forName("Your.Class.String");

但你必须处理异常

注意:只是提醒您处理ClassNotFound异常

【讨论】:

  • 谢谢,但@JamesB 打赌你
猜你喜欢
  • 2021-03-25
  • 2021-11-30
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
  • 2020-11-12
  • 2016-09-30
相关资源
最近更新 更多